我读了这个问题(What is the scope of a lambda variable in C#?)
但它是关于 LINQ Query 中的 Lambda 变量范围。
现在回答我的问题
假设我有一个非常简单的 LINQ 查询。
var Foo = FoobBar.Select(x => x);
var x = somefunction();
编译器说:A local variable 'x' cannot be declared in this scope because it would give a different meaning to 'x', which is already used in a 'child' scope to denote something else
。
为什么呢?LINQ 查询结束时,Lambda 变量不应该不复存在吗?
编辑:阅读答案后,我得出结论,它的x
范围在 LINQ Query 内部扩展(从函数返回)。