Erreur du compilateur CS0202
foreach exige que le type de retour 'type' de 'type.GetEnumerator()' ait une méthode MoveNext publique appropriée et une propriété Current publique
Une fonction GetEnumerator , utilisée pour activer l’utilisation d’instructions foreach, ne peut pas retourner un pointeur ou un tableau. Elle doit retourner une instance d’une classe qui est en mesure d’agir comme un énumérateur. Les conditions préalables pour servir d’énumérateur incluent une propriété Current publique et une méthode MoveNext publique.
Notes
En C# 2.0, le compilateur génère automatiquement Current et MoveNext pour vous. Pour plus d’informations, consultez l’exemple de code dans Interfaces génériques.
L’exemple suivant génère l’erreur CS0202 :
// CS0202.cs
public class C1
{
public int Current
{
get
{
return 0;
}
}
public bool MoveNext ()
{
return false;
}
public static implicit operator C1 (int c1)
{
return 0;
}
}
public class C2
{
public int Current
{
get
{
return 0;
}
}
public bool MoveNext ()
{
return false;
}
public C1[] GetEnumerator ()
// try the following line instead
// public C1 GetEnumerator ()
{
return null;
}
}
public class MainClass
{
public static void Main ()
{
C2 c2 = new C2();
foreach (C1 x in c2) // CS0202
{
System.Console.WriteLine(x.Current);
}
}
}
Commentaires sur .NET
.NET est un projet open source. Sélectionnez un lien pour fournir des commentaires :