Notatka
Dostęp do tej strony wymaga autoryzacji. Może spróbować zalogować się lub zmienić katalogi.
Dostęp do tej strony wymaga autoryzacji. Możesz spróbować zmienić katalogi.
foreach wymaga, aby zwracany typ "type" typu "type". GetEnumerator()' musi mieć odpowiednią publiczną metodę MoveNext i publiczną właściwość Current
Funkcja GetEnumerator , używana do włączania używania instrukcji foreach, nie może zwrócić wskaźnika lub tablicy. Musi zwrócić wystąpienie klasy, która może działać jako moduł wyliczający. Odpowiednie wymagania, które mają służyć jako moduł wyliczający, obejmują publiczną właściwość Current i publiczną metodę MoveNext.
Uwaga
W języku C# 2.0 kompilator automatycznie wygeneruje bieżące i MoveNext. Aby uzyskać więcej informacji, zobacz przykład kodu w interfejsach ogólnych.
Poniższy przykład generuje 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);
}
}
}