編譯器錯誤 CS1942
更新: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
}
}
因為搭配使用 var 與範圍變數會因 var 不是型別而讓基礎 Cast<T> 作業失敗,所以 CS1942 與 CS1949 有關。