Lezen in het Engels

Delen via


Compilerfout CS0202

foreach vereist dat het retourtype 'type' van 'type' is. GetEnumerator()' moet een geschikte openbare MoveNext-methode en openbare huidige eigenschap hebben

Een GetEnumerator functie, die wordt gebruikt om het gebruik van foreach-instructies in te schakelen, kan geen aanwijzer of matrix retourneren. Het moet een exemplaar retourneren van een klasse die als opsomming kan fungeren. De juiste vereisten voor het fungeren als enumerator omvatten een openbare eigenschap Current en een openbare MoveNext-methode.

Notitie

In C# 2.0 genereert de compiler automatisch Current en MoveNext voor u. Zie het codevoorbeeld in Algemene interfaces voor meer informatie.

In het volgende voorbeeld wordt CS0202 gegenereerd:

// 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);  
      }  
   }  
}