我正在尝试从委托数组调用委托函数.我已经能够创建代理数组,但是如何调用委托?
- public delegate void pd();
- public static class MyClass
- {
- static void p1()
- {
- //...
- }
- static void p2 ()
- {
- //...
- }
- //...
- static pd[] delegates = new pd[] {
- new pd( MyClass.p1 ),new pd( MyClass.p2)
- /* ... */
- };
- }
- public class MainClass
- {
- static void Main()
- {
- // Call pd[0]
- // Call pd[1]
- }
- }
编辑:数组的原因是我需要根据需要通过索引调用委托函数.他们不是为了回应事件而运行.我在我的代码中看到一个关键的(愚蠢的)错误,因为我试图使用pd []类型而不是数组的名称(委托)来执行委托函数.
解决方法
如果它们是一样的,那么为什么不把它们组合成一个单播多播代理?
- static pd delegateInstance = new pd(MyClass.p1) + new pd(MyClass.p2) ...;
- ...
- pd();