更新:2007 年 11 月
错误消息
“clause”子句中表达式的类型不正确。类型推理在对“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 会导致因 var 不是类型而使基础 Cast<T> 运算失败。