Errore del compilatore CS1942

Aggiornamento: novembre 2007

Messaggio di errore

Il tipo dell'espressione nella clausola 'clausola' non è corretto. Inferenza dei tipi non riuscita nella chiamata a 'metodo'.
The type of the expression in the 'clause' clause is incorrect. Type inference failed in the call to 'method'.

Questo errore viene generato di solito quando alla variabile di intervallo è stato fornito un tipo esplicito non corretto.

Per correggere l'errore

  • Se la variabile di intervallo è tipizzata in modo esplicito, assicurarsi che il tipo sia uguale a, o implicitamente convertibile da, il tipo degli elementi nell'insieme iterato. Se la variabile di intervallo è preceduta dalla parola chiave var, rimuovere var.

Esempio

Nel codice seguente viene generato l'errore CS1942:

// cs1942.cs
class Program
    {
        static void Main(string[] args)
        {
            var x = from var i in Enumerable.Range(1, 100) // CS1949
                    select i; //CS1942
        }
    }

CS1942 si riferisce a CS1949 perché l'utilizzo di var con una variabile di intervallo comporta che l'operazione Cast<T> sottostante non riesca perché var non è un tipo.

Vedere anche

Concetti

Espressioni query LINQ (Guida per programmatori C#)

Riferimenti

var (Riferimenti per C#)