闭包(closure)

被问到闭包是什么。之前彷佛不多接触这个概念,补了下。闭包

看了这篇博客:What's in a closure.
ui

总结起来,宿主方法(parent method)体内部的匿名方法,能够调用宿主方法体内的局部变量。缘由大概是该匿名方法绑定的是宿主方法方法体和其内部的变量。进一步推测,可能匿名方法指向了他的宿主方法的引用。spa

 

delegate void Action();

static void Main(string[] args)
{
  int x = 0;

  Action a = delegate { Console.WriteLine(x); };

  x = 1;

  a();
}
.net

上面的打印出来的是 “1”而不是“0”.get

 

猜想部分,等待之后再验证。博客

相关文章
相关标签/搜索