Я всегда был сбит с толку / не уверен насчет того, как .Net копирует ссылки.Допустим, у меня есть объект Bitmap для GDI +.
dim foo as new bitmap("c:\foo.bmp")
'Foo' содержит объект Bitmap.Теперь допустим, что я делаю это.
dim bar as bitmap = foo
Это мелкая копия или глубокая копия?Если я установил foo равным ничего, то внезапно ли bar также ссылается на «ничто»?Или bar также содержит копию растрового изображения, и для того, чтобы полностью удалить растровое изображение из памяти, мне нужно установить ни 'foo', ни 'bar' в ничто?
Мне нужно сохранить библиотекурастровых изображений в памяти, и для меня было бы проще просто сохранить ссылку на каждое растровое изображение в каждом созданном объекте как переменную, вместо того, чтобы кодировать его с индексом и ссылаться на библиотеку каждый раз, когда это необходимо (например,'BitmapLibrary.Singleton.getBitmap (id)')
В двух словах, я могу сделать это:
struct graphic object
dim myBitmap as bitmap
sub draw(g as graphics)
g.drawimage(myBitmap)
end sub
вместо этого:
struct graphic object
dim myBitmapIndex as integer
sub draw(g as graphics)
g.drawimage(bitmaplibrary.getImage(myBitmapIndex))
end sub