Przeczytaj w języku angielskim

Udostępnij za pośrednictwem


Ostrzeżenie kompilatora (poziom 2) CS0280

Wzorzec "type" nie implementuje wzorca "nazwa wzorca". "nazwa metody" ma niewłaściwy podpis.

Dwie instrukcje w języku C#, foreach i using, opierają się odpowiednio na wstępnie zdefiniowanych wzorcach, "kolekcja" i "zasób". To ostrzeżenie występuje, gdy kompilator nie może dopasować jednej z tych instrukcji do jego wzorca z powodu nieprawidłowego podpisu metody. Na przykład wzorzec "kolekcja" wymaga metody o nazwie MoveNext , która nie przyjmuje parametrów i zwraca wartość boolean. Kod może zawierać metodę MoveNext , która ma parametr lub może zwracać obiekt.

Wzorzec "zasobu" i using podaj inny przykład. Wzorzec "zasobu" wymaga Dispose metody. Jeśli zdefiniujesz właściwość o tej samej nazwie, zostanie wyświetlone to ostrzeżenie.

Aby rozwiązać to ostrzeżenie, upewnij się, że podpisy metody w twoim typie są zgodne z podpisami odpowiednich metod we wzorcu i upewnij się, że nie masz właściwości o tej samej nazwie co metoda wymagana przez wzorzec.

Przykład

Poniższy przykład generuje plik CS0280.

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