Leer en inglés

Compartir a través de


Advertencia del compilador (nivel 2) CS0278

'tipo' no implementa el patrón 'nombre de patrón'. 'nombre de método' es ambiguo con 'nombre de método'.

Hay varias instrucciones en C# que se basan en patrones definidos, como foreach y using. Por ejemplo, la instrucción foreach se basa en la clase de colección que implementa el patrón “enumerable”.

Puede producirse la advertencia CS0278 si el compilador no puede establecer la coincidencia debido a ambigüedades. Por ejemplo, el patrón "enumerable" necesita un método llamado MoveNext, y el código puede contener dos métodos denominados MoveNext. El compilador intentará encontrar una interfaz que pueda usar, pero se recomienda que determine y resuelva la causa de la ambigüedad.

Ejemplo

El ejemplo siguiente genera la advertencia 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  
   }  
}