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.

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