让我说以下内容:
class A
{
T x;
Func<T> f;
A()
{
f = () => x;
}
void SetX(T blah)
{
x = blah;
}
}
f()
== x
总是这样。
即调用SetX(y)
之后,f()
== x
== y
真的吗?
(请注意,值类型和引用类型是否不同)
更广泛地说,我是否可以阅读(或可以将其放在答案中)有关lambda参数是在创建lambda时还是在执行lambda时进行评估的一些信息?我可以测试这些案例,但是我想要一些阅读材料,因此我了解它的工作原理,因此以后再也不会遇到麻烦了。