Przeczytaj w języku angielskim

Udostępnij za pośrednictwem


Ostrzeżenie kompilatora (poziom 2) CS0278

Wzorzec "type" nie implementuje wzorca "nazwa wzorca". "nazwa metody" jest niejednoznaczna z nazwą metody.

W języku C# istnieje kilka instrukcji, które opierają się na zdefiniowanych wzorcach, takich jak foreach i using. Na przykład instrukcja foreach opiera się na klasie kolekcji wdrażającej wzorzec "wyliczalny".

CS0278 może wystąpić, jeśli kompilator nie może dokonać dopasowania z powodu niejednoznaczności. Na przykład wzorzec "wyliczalny" wymaga, aby istniała metoda o nazwie , a kod może zawierać dwie metody o nazwie MoveNextMoveNext. Kompilator podejmie próbę znalezienia interfejsu do użycia, ale zaleca się określenie i rozwiązanie przyczyny niejednoznaczności.

Przykład

Poniższy przykład generuje plik CS0278.

// CS0278.cs  
using System.Collections.Generic;  
public class myTest
{  
   public static void TestForeach<W>(W w)
      where W: IEnumerable<int>, IEnumerable<string>  
   {  
      foreach (int i in w) {}   // CS0278  
   }  
}