İngilizce dilinde oku

Aracılığıyla paylaş


Derleyici Hatası CS0202

foreach, 'type' dönüş türünün 'type' olmasını gerektirir. GetEnumerator()' uygun bir genel MoveNext yöntemine ve genel Current özelliğine sahip olmalıdır

GetEnumerator foreach deyimlerinin kullanımını etkinleştirmek için kullanılan bir işlev, bir işaretçi veya dizi döndüremez; numaralandırıcı işlevi görecek bir sınıfın örneğini döndürmelidir. Numaralandırıcı olarak hizmet vermek için uygun gereksinimler arasında bir genel Current özelliği ve bir genel MoveNext yöntemi bulunur.

Not

C# 2.0'da derleyici sizin için otomatik olarak Current ve MoveNext oluşturur. Daha fazla bilgi için Genel Arabirimler'deki kod örneğine bakın.

Aşağıdaki örnek CS0202 oluşturur:

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