共用方式為


編譯器錯誤 CS1939

更新:2007 年 11 月

錯誤訊息

無法將範圍變數 'name' 當做 out 或 ref 參數傳遞。

範圍變數是查詢運算式中引入的唯讀變數,而且是做為來源序列中之每個後續項目的識別項。因為範圍變數不可以用任何方式進行修改,所以無法透過 ref 或 out 進行傳遞。因此,這兩個作業無效。

若要更正這個錯誤

  • 透過傳值 (By Value) 傳遞範圍變數。

範例

下列範例會產生 CS1939:

// cs1939.cs
using System.Linq;
class Test
{
    public static void F(ref int i)
    {
    }
    public static void Main()
    {
        var list = new int[] { 0, 1, 2, 3, 4, 5 };
        var q = from x in list
                let k = x
                select Test.F(ref x); // CS1939
    }
}