다음을 통해 공유


컴파일러 오류 C3287

'type' 형식(GetEnumerator의 반환 형식)에는 적합한 public MoveNext 멤버 함수와 public Current 속성이 있어야 합니다.

설명

사용자 정의 컬렉션 클래스에는 MoveNextCurrent에 대한 정의가 포함되어야 합니다.

자세한 내용은 각각을 참조 하세요.

예시

다음 샘플에서는 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
}