CS0202 de erro do compilador
Mensagem de erro
foreach requer que o tipo de retorno 'tipo' de 'type.GetEnumerator()' deve tenha um método MoveNext público adequado e a propriedade corrente pública
A GetEnumerator função, usada para habilitar o uso da instrução foreach não pode retornar um ponteiro ou matriz; ele deve retornar uma instância de uma classe que é capaz de atuar sistema autônomo um enumerador. sistema autônomo requisitos apropriados para servir sistema autônomo um enumerador incluem uma propriedade corrente pública e um método MoveNext público.
Observação: |
---|
Em translation from VPE for Csharp 2.0, o compilador gerará automaticamente corrente e MoveNext para você.Para obter mais informações, consulte o exemplo de código em Interfaces genéricos (guia de programação C#). |
O exemplo a seguir gera 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);
}
}
}