2010-07-28 20 views
0

好吧,我总是对此感到困惑。简单的问题 - 浅拷贝(VB.Net)

假设我有这个代码。

Public Sub Bar(byRef pMap as clsMap) 
Dim foo as new FooClass() 
pMap.listOfFoo.Add(foo) 
end Sub 

这将意味着引用'Foo'或存储在'listOfFoo'中的项目会引用同一个对象,对吧?如果我要更改'foo'属性 - 但不会将其更改为新对象 - 两者仍会引用并反映更新的值?

回答

2

是的,你正在存储一个指向foo对象的引用指针,所以如果你在一个地方修改了一个属性,那么在所有引用foo的地方都会看到它。

如果你想复制你的对象,你应该考虑object cloning