Aviso do compilador (nível 2) CS0278
'type' não implementa o padrão 'pattern name'. 'nome do método' é ambíguo com 'nome do método'.
Há várias instruções em C# que dependem de padrões definidos, como foreach
e using
. Por exemplo, a foreach
instrução depende da classe de coleção que implementa o padrão "enumerável".
CS0278 pode ocorrer se o compilador é incapaz de fazer a correspondência devido a ambiguidades. Por exemplo, o padrão "enumerável" requer que haja um método chamado MoveNext
, e seu código pode conter dois métodos chamados MoveNext
. O compilador tentará encontrar uma interface para usar, mas é recomendável que você determine e resolva a causa da ambiguidade.
O exemplo a seguir gera 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
}
}
Comentários do .NET
O .NET é um projeto código aberto. Selecione um link para fornecer comentários: