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/