我正在使用VS2008。
以下是否可以使用非常简单的类(见下文)执行以下VB.NET?
for each CurrentObject as MyObject in MyArray
'access current object
next
“简单的课程”:
Class MyObject
public I as integer
end class
我似乎记得需要iEnumerable的东西,但我的编译器并不抱怨。
修改澄清
答案 0 :(得分:1)
For Each
仅适用于实现IEnumerable
的类型,通常是集合。您应该知道,对于集合的每个元素发生的项目转换是在运行时完成的,因此即使代码编译,它也可能在执行时失败。
您可以在MSDN上阅读有关此内容的更多信息:For Each...Next Statement (Visual Basic)
答案 1 :(得分:1)
这完全没问题。
在.NET内部,您的数组MyArray实现了IEnumerable,这是编译器在使用此类foreach循环时所查找和使用的内容。
所以你不需要再做任何事了。
实际上,如果MyArray已经被声明为MyObject数组,则不需要转换为MyObject,所以
Dim MyArray(20) As MyObject
for each CurrentObject in MyArray
'access current object
next
将始终正常工作,因为CurrentObject将始终为MyObject类型。
如果没有什么可以告诉.NET你的数组包含什么类型,你只需要演员。