Chyba kompilátoru CS0202
foreach vyžaduje, aby návratový typ "type" typu "type". GetEnumerator() musí mít vhodnou veřejnou metodu MoveNext a veřejnou aktuální vlastnost.
GetEnumerator Funkce, která se používá k povolení použití příkazů foreach, nemůže vrátit ukazatel nebo pole; musí vrátit instanci třídy, která může fungovat jako enumerátor. Správné požadavky, které mají sloužit jako enumerátor, zahrnují veřejnou Aktuální vlastnost a veřejnou Metodu MoveNext.
Poznámka
V jazyce C# 2.0 kompilátor automaticky vygeneruje Aktuální a MoveNext za vás. Další informace najdete v příkladu kódu v obecných rozhraních.
Následující ukázka vygeneruje 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);
}
}
}
Zpětná vazba k produktu .NET
.NET je open source projekt. Vyberte odkaz pro poskytnutí zpětné vazby: