Compilerfehler CS0202
Für "foreach" muss der Rückgabetyp "Typ" von "'type.GetEnumerator()" über eine passende öffentliche MoveNext-Methode und eine öffentliche Current-Eigenschaft verfügen.
Eine GetEnumerator -Funktion, die zur Aktivierung der Verwendung von foreach-Anweisungen verwendet wird, kann weder einen Zeiger noch ein Array zurückgeben. Sie muss eine Instanz einer Klasse zurückgeben, die als Enumerator agieren kann. Die Anforderungen an einen Enumerator schließen eine öffentliche Current-Eigenschaft und eine öffentliche MoveNext-Methode ein.
Hinweis
In C# 2.0 werden Current und MoveNext vom Compiler automatisch generiert. Weitere Informationen finden Sie im Codebeispiel unter Generische Schnittstellen.
Im folgenden Beispiel wird CS0202 generiert:
// 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);
}
}
}
Feedback
https://aka.ms/ContentUserFeedback.
Bald verfügbar: Im Laufe des Jahres 2024 werden wir GitHub-Issues stufenweise als Feedbackmechanismus für Inhalte abbauen und durch ein neues Feedbacksystem ersetzen. Weitere Informationen finden Sie unterFeedback senden und anzeigen für