简单问题-浅拷贝(VB.Net)
好吧,我总是对此感到困惑 假设我有这个代码简单问题-浅拷贝(VB.Net),vb.net,object,copy,deep-copy,Vb.net,Object,Copy,Deep Copy,好吧,我总是对此感到困惑 假设我有这个代码 Public Sub Bar(byRef pMap as clsMap) Dim foo as new FooClass() pMap.listOfFoo.Add(foo) end Sub 这意味着引用'Foo'或'listOfFoo'中存储的项将引用相同的对象,对吗?如果我要更改“foo”的一个属性,但不将其更改为一个新对象,两者都将仍然引用并反映更新的值?是的,您正在存储一个指向foo对象的引用指针,因此如果您在一个位置修改属性,它将在引用foo
Public Sub Bar(byRef pMap as clsMap)
Dim foo as new FooClass()
pMap.listOfFoo.Add(foo)
end Sub
这意味着引用'Foo'或'listOfFoo'中存储的项将引用相同的对象,对吗?如果我要更改“foo”的一个属性,但不将其更改为一个新对象,两者都将仍然引用并反映更新的值?是的,您正在存储一个指向
foo
对象的引用指针,因此如果您在一个位置修改属性,它将在引用foo
的所有其他位置可见
如果你想复制你的对象,你应该考虑。