.NET- MyArray의 MyObject로 각각의 OBJ에 대해 - 이것은 아무것도 구현하지 않고 가능합니까?

StackOverflow https://stackoverflow.com/questions/1620186

  •  06-07-2019
  •  | 
  •  

문제

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)

라이센스 : CC-BY-SA ~와 함께 속성
제휴하지 않습니다 StackOverflow
scroll top