共用方式為


編譯器錯誤 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 有關。

請參閱

概念

LINQ 查詢運算式 (C# 程式設計手冊)

參考

var (C# 參考)