Errore del compilatore CS0202
Con foreach il tipo restituito ''type' di 'type.GetEnumerator()' deve essere associato a un metodo MoveNext pubblico e a una proprietà Current pubblica appropriati
Una funzione GetEnumerator , usata per abilitare l'uso delle istruzioni foreach, non può restituire un puntatore o una matrice, ma un'istanza di una classe che può fungere da enumeratore. I requisiti da soddisfare per fungere da enumeratore includono la proprietà public Current e il metodo public MoveNext.
Nota
In C# 2.0 il metodo MoveNext e la proprietà Current vengono generati automaticamente. Per altre informazioni, vedere l'esempio di codice in Interfacce generiche.
L'esempio seguente genera l'errore 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);
}
}
}
Feedback su .NET
.NET è un progetto di open source. Selezionare un collegamento per fornire feedback: