我在C++和VB.NET之間的編程冒險之間遷移...這會導致偶爾出現的混淆有關VB.NET中的值或引用的情況。.NET容器 - 什麼時候是成員通過引用,按值?
比方說,我有一個MyObject的數組,其中填充了一堆對象。
dim MyArr(5000) of MyObject
現在讓我們說,從這個數組中的信息傳播遍及各種數據結構:
dim MyList as new List(of MyObject)
for i as integer = 0 to 5000 step 1000
Mylist.add(MyArr(i))
next
然後
dim MyTable as new HashTable
dim i as integer = 0
for each O as MyObject in Mylist
if i mod 2 = 0 then
MyTable.add(O.ToString(), O)
end if
next
在上述情況下,我相信一切是參考。如果我從「MyTable」中提取條目並修改其MyObject成員,我認爲MyArr中的原始文件將被修改。
但是,我遇到了一些情況,我認爲某些事情是通過引用而引起的,而且是有價值的。
項目是否總是通過引用添加到容器中,或者它們有時是按值添加的?
我很困惑。
你應該告訴我們一些關於「價值共享」的情況。你的MyArray例子是正確的。 – 2009-10-25 07:49:30