Nota
L'accesso a questa pagina richiede l'autorizzazione. È possibile provare ad accedere o modificare le directory.
L'accesso a questa pagina richiede l'autorizzazione. È possibile provare a modificare le directory.
Aggiornamento: novembre 2007
Messaggio di errore
foreach richiede che il tipo restituito 'tipo' di 'type.GetEnumerator()' sia associato a un metodo MoveNext pubblico adatto e a una proprietà Current pubblica.
foreach requires that the return type 'type' of 'type.GetEnumerator()' must have a suitable public MoveNext method and public Current property
Una funzione GetEnumerator, implementata per consentire l'uso delle istruzioni foreach, non deve restituire un puntatore o una matrice, ma un'istanza di una classe che può fungere da enumeratore. Nei requisiti da soddisfare per fungere da enumeratore sono inclusi 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 ulteriori informazioni, vedere il codice di esempio in Interfacce generiche (Guida per programmatori C#). |
Il seguente codice di esempio 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);
}
}
}
Nota: