好吧,我总是对此感到困惑。
假设我有这个代码。
Public Sub Bar(byRef pMap as clsMap)
Dim foo as new FooClass()
pMap.listOfFoo.Add(foo)
end Sub
这意味着引用“Foo”或存储在“listOfFoo”中的项目将引用同一个对象,对吧?如果我要更改 'foo' 的属性 - 但不将其更改为新对象 - 两者仍然会引用并反映更新的值?
是的,您正在存储一个指向该foo对象的引用指针,因此如果您在一个地方修改一个属性,它将在所有其他foo引用的地方可见。
如果你想复制你的对象,你应该考虑对象克隆。