评估lambda的语义

时间:2019-03-12 05:06:13

标签: c# lambda

让我说以下内容:

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时进行评估的一些信息?我可以测试这些案例,但是我想要一些阅读材料,因此我了解它的工作原理,因此以后再也不会遇到麻烦了。

0 个答案:

没有答案