CS1940 de erro do compilador

Mensagem de erro

Várias implementações do padrão de consulta foram encontradas para tipo de fonte 'tipo'.telefonar ambígua para 'método'.

Este erro é gerado quando várias implementações de um método de consulta são definidas e o compilador não pode disambiguate qual deles é melhor usar para a consulta.No exemplo a seguir, sistema autônomo duas versões de Select tem a mesma assinatura, pois ambos são um int sistema autônomo um parâmetro de entrada e ter int sistema autônomo um valor retornado.

Para corrigir este erro

  • Fornecer apenas uma implementação para cada método.

Exemplo

O código a seguir gera 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;
    }
}

Consulte também

Conceitos

Visão geral sobre operadores de consulta padrão