Číst v angličtině

Sdílet prostřednictvím


Upozornění kompilátoru (úroveň 2) CS0280

"type" neimplementuje vzor "název vzoru". Název metody má nesprávný podpis.

Dva příkazy v jazyce C#, foreach a using spoléhají na předdefinované vzory, "kolekce" a "prostředek". K tomuto upozornění dochází, když kompilátor nemůže shodovat jeden z těchto příkazů s jeho vzorem kvůli nesprávnému podpisu metody. Například vzor "collection" vyžaduje, aby byla volána MoveNext metoda, která nepřijímá žádné parametry a vrací boolean. Váš kód může obsahovat metodu MoveNext , která má parametr nebo možná vrací objekt.

Vzor "prostředek" a using uveďte další příklad. Model "resource" vyžaduje metodu Dispose . Pokud definujete vlastnost se stejným názvem, zobrazí se toto upozornění.

Pokud chcete toto upozornění vyřešit, ujistěte se, že podpisy metody ve vašem typu odpovídají podpisům odpovídajících metod ve vzoru, a ujistěte se, že nemáte žádné vlastnosti se stejným názvem jako metoda vyžadovaná vzorem.

Příklad

Následující ukázka vygeneruje CS0280.

C#
// CS0280.cs  
using System;  
using System.Collections;  
  
public class ValidBase: IEnumerable  
{  
   IEnumerator IEnumerable.GetEnumerator()  
   {  
      yield return 0;  
   }  
  
   internal IEnumerator GetEnumerator()  
   {  
      yield return 0;  
   }  
}  
  
class Derived : ValidBase  
{  
   // field, not method  
   new public int GetEnumerator;  
}  
  
public class Test  
{  
   public static void Main()  
   {  
      foreach (int i in new Derived()) {}   // CS0280  
   }  
}