2
我有一个List(Of SomeObject)
,我使用For Each
循环来枚举。这SomeObject
包含一个属性引用另一个对象,这样ForEach在列表中更新对象的属性
Class SomeObject
Public Property Another As AnotherObject
Get
Return _another
End Get
Set (byval value as Integer)
_another = value
End Set
End Property
dim _another As New AnotherObject()
End Class
这个问题我有是,是否更新SomeObject的AnotherObject属性中的For Each循环有效。
这样
Dim newanother As New AnotherObject()
For Each el As SomeObject in myobjects
el.Another = newanother
Next
这是有效的? 如果没有,那么有效的方法是什么? (普通的循环或许?)
为什么这不是有效的?你关心的是什么?您不会从集合中添加/删除项目,甚至不会更改对象的参考。 – 2011-04-02 13:43:10
@Cody Gray:我正在改变参考,它指向一个新的对象,但是是的,你是对的,我没有改变这个集合。我想我的担心是没有道理的... – 2011-04-02 13:48:07
我不明白你是如何改变参考的。至少,您不会更改要迭代的对象的对象引用。您正在更改这些对象的*公共属性*的对象引用。这是完全不同的事情。 – 2011-04-02 13:53:59