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.
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
}
}
Opinia o produkcie .NET
.NET to projekt typu open source. Wybierz link, aby przekazać opinię: