【发布时间】:2009-10-25 07:42:04
【问题描述】:
在我的编码事业中,我在 C++ 和 VB.NET 之间迁移...这会导致在 VB.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 示例是正确的。
标签: .net vb.net list queue containers