更新:2007 年 11 月
错误消息
无法将范围变量“name”作为 out 或 ref 参数传递。
范围变量是在查询表达式中引入的只读变量,它用作源序列中每个连续元素的标识符。因为该变量不能以任何方式进行更改,所以通过 ref 或 out 传递它没有任何意义。因此,这两个操作都是无效的。
更正此错误
- 通过值传递范围变量。
示例
下面的示例生成 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
}
}