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 MoveNext
MoveNext
. Kompilator podejmie próbę znalezienia interfejsu do użycia, ale zaleca się określenie i rozwiązanie przyczyny niejednoznaczności.
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
}
}
Opinia o produkcie .NET
.NET to projekt typu open source. Wybierz link, aby przekazać opinię: