컴파일러 오류 C3287
'type' 형식(GetEnumerator의 반환 형식)에는 적합한 public MoveNext 멤버 함수와 public Current 속성이 있어야 합니다.
설명
사용자 정의 컬렉션 클래스에는 MoveNext
및 Current
에 대한 정의가 포함되어야 합니다.
자세한 내용은 각각을 참조 하세요.
예시
다음 샘플에서는 C3287을 생성합니다.
// C3287.cpp
// compile with: /clr
using namespace System;
ref struct R {
bool MoveNext() {
return true;
}
property Object^ Current {
Object^ get() {
Object ^ o = gcnew Object;
return o;
}
}
};
ref struct R2 {
R ^GetEnumerator() {
R^ r = gcnew R;
return r;
}
};
ref struct T {};
ref struct T2 {
T ^GetEnumerator() {
T^ t = gcnew T;
return t;
}
};
int main() {
for each (int i in gcnew T2) {} // C3287
for each (int i in gcnew R2) {} // OK
}