gpt4 book ai didi

c# - 如何访问以前添加到委托(delegate)的函数

转载 作者:行者123 更新时间:2023-11-30 15:51:13 27 4
gpt4 key购买 nike

<分区>

我是委托(delegate)新手,据我所知,您可以向委托(delegate)添加两个或更多函数(使用 +=)。但是当你激活一个委托(delegate)时,它总是会调用最后添加的函数。如果我想调用之前添加的函数怎么办?假设我有:

public static int add(int o1, int o2)
{
return o1 + o2;
}

public static int multiply(int o1, int o2)
{
return o1 * o2;
}

public static int minus(int o1, int o2)
{
return o1 - o2;
}

所以我使用一个委托(delegate)(实际上是一个 Func)来添加所有这些函数。

Func<int, int, int> f;
f = add;
f += multiply;
f += minus;

现在假设我想调用multiplyadd,我不能这样做,如果我使用:

Console.WriteLine(f(1,2));

它只会调用minus

编辑

顺便说一句,我知道可以使用-= 来删除函数,但是如果有大量函数,就不方便了。我正在寻找的解决方案是索引(如数组)

f[2](5,3) 

好像不行。

27 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com