多应用+插件架构,代码干净,二开方便,首家独创一键云编译技术,文档视频完善,免费商用码云13.8K 广告
# Compiler Error CS1942 “clause”子句中表达式的类型不正确。类型推理在对“method”的调用中失败。 如果为范围变量指定了不正确的显式类型,通常会生成此错误。 ## 更正此错误 1. 如果范围变量是显式类型的,请确保该类型与循环访问的集合中的元素类型相同或可从该类型隐式转换。如果范围变量的前面带有 **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** 会导致因 **var** 不是类型而使基础 Cast<T> 运算失败。 ## 请参阅 [var(C# 参考)](https://msdn.microsoft.com/zh-cn/library/bb383973.aspx) [LINQ 查询表达式(C# 编程指南)](https://msdn.microsoft.com/zh-cn/library/bb397676.aspx)