Ошибка компилятора CS1942Compiler Error CS1942

Тип выражения в предложении "предложение" неверен.The type of the expression in the 'clause' clause is incorrect. Ошибка определения типа при вызове в "метод".Type inference failed in the call to 'method'.

Эта ошибка обычно возникает в том случае, если переменной диапазона назначается неверный явный тип.This error is typically generated when the range variable has been given an incorrect explicit type.

Исправление ошибкиTo correct this error

  1. Если переменной диапазона явно назначается тип, убедитесь, что этот тип совпадает с типом элементов в коллекции, для которой будут выполняться итерации, или может быть неявно преобразован из него.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. Если переменной диапазона предшествует ключевое слово var, удалите var.If the range variable is preceded with the var keyword, remove var.

ПримерExample

В следующем коде возникает ошибка 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  
        }  
    }  

Ошибка CS1942 связана с ошибкой CS1949, поскольку использование var с переменными диапазона приводит к ошибке базовой операции Cast<T>, так как var не является типом.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.

См. также разделSee also