Поделиться через


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

Обновлен: Ноябрь 2007

Сообщение об ошибке

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

Эта ошибка обычно возникает, если переменной диапазона явно присваивается неверный тип.

Исправление ошибки

  • Если переменной диапазона явно присваивается тип, убедитесь, что ее тип совпадает с типом элементов коллекции, перебор которой она осуществляет, или может быть неявно преобразован из этого типа. Если переменной диапазона предшествует ключевое слово var, удалите var.

Пример

Следующий код вызывает ошибку 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 не является типом.

См. также

Основные понятия

Выражения запросов LINQ (Руководство по программированию в C#)

Ссылки

var (справочник по C#)