c#委托的问题,请教一下,谢谢

    delegate int NumberChange(int n);
    public static int MultOne(int num)
    {
        return num * 3;
    }
    public static int MultTwo(int num)
    {
        return num * 2;
    }


            static void Main(string[] args)
    {
                NumberChange nc1 = new NumberChange(MultOne);
        NumberChange nc2 = new NumberChange(MultTwo);
        NumberChange nc;
        nc = nc2 + nc1;
        int a = nc1(5);
        int b = nc2(5);
        int c = nc(5);
        Console.WriteLine(c);
            }

            两个委托相加,输出结果是10,为什么结果不是两个委托的和,而是nc2的值,谢谢

输出是15,不是10

nc = nc1 + nc2;

委托相加的意思是指,当调用nc时,**将按顺序调用nc1和nc2**,
也就是说先调用nc1

 c = nc1(5) // 此时c=15

然后调用 nc2

  c = nc2(5) //此时c =10

最终输出c值是10。

你可以将题目代码中
nc = nc2 + nc1;
更改为
nc = nc1 + nc2;
再观察结果,以增加对委托相加的认识。

你逻辑有问题啊
int a = nc1(5);
int b = nc2(5);
这是干什么用的,你只输出了int c = nc(5);

委托中的加号相当于事件的执行顺序没有数学中的“+”的意思,所以执行结果相当于nc(5)=nc2(5)