我需要一个 C# 委托来首先绑定具有不同参数(相同类型)的多个函数,然后稍后触发/调用它们。
请参阅下面的示例:
(请注意,我的实际需求要复杂得多,但同样的原则也适用——不想用业务/领域/实现/无聊的位来打扰您)。(另外,请原谅语法,如果它在某处不正确:P)
假设我有以下 4 个函数,具有相同的类型和数量的参数:
Void Add(int , int)
Void Subtract(int , int)
Void Multiply(int, int)
Void Divide(int , int)
我知道由于它们具有相同的参数,我可以让 1 个代表指向所有的,对吗?
而且我知道如果我使用多播委托,那么我可以使用它来触发全部或部分委托,对吗?
例如,
delegate void MyDelegate (int a , int b);
然后使用委托,如下所示:-
MyDelegate del;
del = Add;
del += Subtract;
del += Multiply;
后来,我可以这样使用它:
del(10,20);
现在,这将触发具有相同参数 10 和 20 的所有函数。
我的要求是有一个多演员委托,在那里我可以添加我想要的所有功能,但它们有不同的参数。
当我指定参数时,它们不应该被触发/调用,相反,它们应该稍后被调用/触发,但是完全按照我链接/链接它们的顺序。
例如:我想做这样的事情:
delayedDelegate = Add(1,2);
//
//Some Code Here
//
delayedDelegate += Subract(3,4)
//
//Some More Code Here
//
delayedDelegate += Multiply(5,6)
//
//More Code Here
//
delayedDelegate += Add(7,8);
//
// Just a little More Code Here
//
最后,开始执行:
// Fire all the chained functions with the parameters that werer assigned to them.
delayedDelegate.Invoke();
我记得我读过这种东西,但今天通过谷歌搜索找不到任何东西。任何帮助将不胜感激。