Sdílet prostřednictvím


Compilerwarnung (Stufe 2) CS0278

Aktualisiert: November 2007

Fehlermeldung

"Typ" implementiert nicht das Muster "Mustername". "Methodenname" ist mit "Methodenname" mehrdeutig.
'type' does not implement the 'pattern name' pattern. 'method name' is ambiguous with 'method name'.

Es gibt mehrere Anweisungen in C#, die auf definierten Mustern beruhen, z. B. foreach und using. Beispielsweise beruht foreach auf der Auflistungsklasse, mit der das "enumerable"-Muster implementiert wird.

CS0278 tritt auf, wenn der Compiler aufgrund von Mehrdeutigkeiten keinen Abgleich ausführen kann. Beispielsweise ist für das "enumerable"-Muster die MoveNext-Methode erforderlich, und der Code enthält möglicherweise zwei Methoden mit der Bezeichnung MoveNext. Der Compiler versucht, eine Schnittstelle zu finden. Es wird jedoch empfohlen, dass Sie den Grund für die Mehrdeutigkeit ermitteln und beheben.

Weitere Informationen finden Sie unter Gewusst wie: Zugreifen auf Auflistungsklassen mit foreach (C#-Programmierhandbuch).

Beispiel

Im folgenden Beispiel wird CS0278 generiert.

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