閉包(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

 

猜想部分,等待之後再驗證。博客

相關文章
相關標籤/搜索