Action变量所引用的对象,被调用的方法或被调用的方法的返回值也为Action

我正在尝试学习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();
}
xiwangvsqiji 回答:Action变量所引用的对象,被调用的方法或被调用的方法的返回值也为Action

暂时没有好的解决方案,如果你有好的解决方案,请发邮件至:iooj@foxmail.com
本文链接:https://www.f2er.com/3061757.html

大家都在问