Erro do Compilador CS1940
Várias implementações do padrão de consulta foram encontradas para o tipo de origem "type". Chamada ambígua a "method".
Esse erro é gerado quando várias implementações de um método de consulta são definidas e o compilador não consegue desambiguar qual é o melhor a ser usado para a consulta. No exemplo a seguir, ambas as versões de Select
têm a mesma assinatura, pois ambas aceitam um int
como parâmetro de entrada e têm int
como valor retornado.
- Forneça apenas uma implementação para cada método.
O seguinte código gera o erro CS1940:
// cs1940.cs
using System; //must include explicitly for types defined in 3.5
class Test
{
public delegate int Dele(int x);
int num = 0;
public int Select(Func<int, int> d)
{
return d(this.num);
}
public int Select(Dele d) // CS1940
{
return d(this.num) + 1;
}
public static void Main()
{
var q = from x in new Test()
select x;
}
}
Comentários do .NET
O .NET é um projeto código aberto. Selecione um link para fornecer comentários: