Partager via


Erreur du compilateur C3287

le type 'type' (type de retour de GetEnumerator) doit avoir une fonction membre MoveNext publique appropriée et une propriété Current publique

Notes

Les classes de collection définies par l’utilisateur doivent contenir des définitions pour MoveNext et Current.

Pour plus d’informations, consultez chacune d’elles.

Exemple

L’exemple suivant génère l’erreur 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
}