C#中有"Javascript context"这样的东西吗
Is there such a thing as a "Javascript context" in C#
如果我将以下代码视为 Javascript 代码,那将是有道理的...但是 Main 中的调用 action() 为何不会为 i 产生 NullReferenceException? Action 是否抓住了 JavaScript 上下文之类的东西?提前感谢大家。
public class Program
{
static void Main(string[] args)
{
var p = new Program();
var action = p.method();
action();
Console.ReadKey();
}
public Action method()
{
var i = 6;
Action action = () => Console.WriteLine(i);
i++;
return action;
}
}
输出>>7
在 method
中创建的 lambda 捕获 lambda 中引用的任何变量。
查看这篇文章:https://blogs.msdn.microsoft.com/matt/2008/03/01/understanding-variable-capturing-in-c/
如果我将以下代码视为 Javascript 代码,那将是有道理的...但是 Main 中的调用 action() 为何不会为 i 产生 NullReferenceException? Action 是否抓住了 JavaScript 上下文之类的东西?提前感谢大家。
public class Program
{
static void Main(string[] args)
{
var p = new Program();
var action = p.method();
action();
Console.ReadKey();
}
public Action method()
{
var i = 6;
Action action = () => Console.WriteLine(i);
i++;
return action;
}
}
输出>>7
在 method
中创建的 lambda 捕获 lambda 中引用的任何变量。
查看这篇文章:https://blogs.msdn.microsoft.com/matt/2008/03/01/understanding-variable-capturing-in-c/