为什么不能在lambda表达式中使用ref或out参数?
我今天遇到了这个错误,并找到了一个解决方案,但我仍然好奇为什么这是一个编译时错误。
CS1628:不能在匿名方法、lambda表达式或查询表达式中使用in ref或out参数'parameter'
这里有一个简单的例子:
private void Foo()
{
int value;
Bar(out value);
}
private void Bar(out int value)
{
value = 3;
int[] array = { 1, 2, 3, 4, 5 };
int newValue = array.Where(a => a == value).First();
}