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
}