Nota
L'accesso a questa pagina richiede l'autorizzazione. È possibile provare ad accedere o modificare le directory.
L'accesso a questa pagina richiede l'autorizzazione. È possibile provare a modificare le directory.
Aggiornamento: novembre 2007
Messaggio di errore
Trovate implementazioni multiple del modello di query per il tipo di origine 'tipo'. Chiamata ambigua a 'metodo'.
Multiple implementations of the query pattern were found for source type 'type'. Ambiguous call to 'method'.
Questo errore viene generato quando vengono definite più implementazioni di un metodo di query e il compilatore non può risolvere l'ambiguità e individuare la migliore da utilizzare per la query. Nell'esempio seguente entrambe le versioni di Select hanno la stessa firma, perché accettano un oggetto int come parametro di input e hanno int come valore restituito.
Per correggere l'errore
- Fornire solo un'implementazione per ogni metodo.
Esempio
Nel codice seguente viene generato l'errore 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;
}
}