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
Il tipo di una delle espressioni nella clausola 'clausola' non è corretto. Inferenza dei tipi non riuscita nella chiamata a 'metodo'.
The type of one of the expressions in the 'clause' clause is incorrect. Type inference failed in the call to 'method'.
Il tipo di inferenza nelle espressioni di query parte dal tipo degli elementi nell'origine o nelle origini dati.
Per correggere l'errore
- Se non è immediatamente ovvia la causa dell'errore, esaminare attentamente la query e analizzare il tipo di risultato di ogni clausola dall'origine dati al punto in cui si verifica l'errore.
Esempio
Nel codice seguente viene generato l'errore CS1941 perché all'operatore equals viene chiesto di confrontare un oggetto int a un oggetto string.
// cs1941.cs
using System.Collections;
using System.Linq;
class Test
{
static int Main()
{
var nums = new[] { 1, 2, 3, 4, 5, 6 };
var words = new string[] { "lake", "mountain", "sky" };
IEnumerable e = from n in nums
join w in words on n equals w // CS1941
select w;
return 0;
}
}
Il metodo nel quale il tipo di inferenza genera errore è il metodo in cui la clausola viene convertita in fase di compilazione.