Advertencia del compilador (nivel 2) CS0278
Actualización: noviembre 2007
Mensaje de error
'tipo' no implementa el modelo 'nombre de modelo'. 'nombre de método' es ambiguo respecto a 'nombre de método'.
'type' does not implement the 'pattern name' pattern. 'method name' is ambiguous with 'method name'.
Hay varias instrucciones en C# que se basan en modelos definidos, como foreach y using. Por ejemplo, foreach se basa en la clase de colección que implementa el modelo "enumerable".
La advertencia CS0278 aparece cuando el compilador no puede establecer la correspondencia debido a las ambigüedades. Por ejemplo, el modelo "enumerable" requiere un método denominado MoveNext, y puede suceder que el código contenga dos métodos denominados MoveNext. El compilador intentará encontrar una interfaz para utilizarla, pero se recomienda determinar la causa de la ambigüedad y corregirla.
Para obtener más información, vea Cómo: Obtener acceso a una clase de colección mediante Foreach (Guía de programación de C#).
Ejemplo
El código 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
}
}