我正在尝试从委托数组调用委托函数.我已经能够创建代理数组,但是如何调用委托?
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();