Erro do Compilador CS1942Compiler Error CS1942

O tipo de uma das expressões na cláusula 'clause' está incorreto.The type of the expression in the 'clause' clause is incorrect. A inferência de tipos falhou na chamada para 'method'.Type inference failed in the call to 'method'.

Normalmente, esse erro é gerado quando a variável de intervalo tem um tipo explícito incorreto.This error is typically generated when the range variable has been given an incorrect explicit type.

Para corrigir este erroTo correct this error

  1. Se a variável de intervalo for tipada explicitamente, certifique-se de que o tipo é igual ou implicitamente conversível do tipo dos elementos na coleção em que a iteração é realizada.If the range variable is explicitly typed, make sure that the type is either the same as, or implicitly convertible from, the type of the elements in the collection it iterates. Se a variável de intervalo for precedida pela palavra-chave var, remova var.If the range variable is preceded with the var keyword, remove var.

ExemploExample

O código a seguir gera o erro CS1942:The following code generates CS1942:

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

O CS1942 está relacionado ao CS1949, pois o uso do var com uma variável de intervalo faz com que a operação Cast<T> subjacente falhe, pois var não é um tipo.CS1942 is related to CS1949 because the use of var with a range variable causes the underlying Cast<T> operation to fail because var is not a type.

Confira tambémSee also