我正在尝试学习C#中的闭包。在观看YouTube教程时,我对闭包有所了解。我正在编写一个示例程序。在此程序中,我正在调用名为Giveaction()
的静态方法,该方法将返回action
。
现在,当我们创建Main
的新实例并将其引用到某个方法时,该类的action
方法中。我很困惑这个实例指的是谁: Giveaction 方法或该方法的返回值b1(也就是action)。
返回值也是action
。在调试时调用action
的此实例时,我只能看到具有被调用的lambda函数的部分。这表明实例变量仅引用返回值。但是我不确定。
private static action Giveaction()
{
action b1= null;
int i = 4;
b1+= () =>
{
i++;
};
b1+= () =>
{
i+=10;
Console.WriteLine(i);
};
return b1;
}
主要方法
static void Main(string[] args)
{
action a1= Giveaction();
a1();
}