.NET- MyArray의 MyObject로 각각의 OBJ에 대해 - 이것은 아무것도 구현하지 않고 가능합니까?
문제
VS2008을 사용하고 있습니다.
다음은 매우 간단한 클래스로 다음 VB.net을 수행해도 괜찮습니까 (아래 참조)?
for each CurrentObject as MyObject in MyArray
'access current object
next
"간단한 클래스":
Class MyObject
public I as integer
end class
나는 ienumerable이 필요하다는 것을 기억하는 것 같지만 컴파일러는 불평하지 않습니다.
편집하다: 설명
해결책
이것은 완전히 괜찮습니다.
내부적으로 .NET에는 배열 MyArray가 Ienumerable을 구현하여 컴파일러가 찾고있는 것입니다.
따라서 더 이상 아무것도 할 필요가 없습니다.
실제로 MyArray가 이미 MyObject 배열로 선언 된 경우 MyObject에 캐스트가 필요하지 않습니다.
Dim MyArray(20) As MyObject
for each CurrentObject in MyArray
'access current object
next
currentObject는 항상 myObject 유형이므로 항상 잘 작동합니다.
배열에 포함 된 유형의 .NET에게 말할 것이없는 경우에만 캐스트가 필요합니다.
다른 팁
For Each
구현하는 유형에 대해서만 작동합니다 IEnumerable
, 일반적으로 컬렉션. 컬렉션의 각 요소에 대해 발생하는 항목은 실행 시간, 그러나 코드가 컴파일 되더라도 실행되면 실패 할 수 있습니다.
MSDN에서 이것에 대해 자세히 알아볼 수 있습니다. 각각 ... 다음 진술 (Visual Basic)
제휴하지 않습니다 StackOverflow