我知道代表的声明是这样的:
public delegate int PerformCalculation(int x, int y);
然而,必须有更多的事情发生。委托的目的是提供一个指向方法的指针,为此,您将对该方法的引用封装在委托中。
这个引用保存在什么样的结构中(在委托内部)?我也知道您可以在委托中封装对多个方法的引用。这是否意味着代表中有一个数组来保存这些?
此外,委托中定义了哪些方法等。当您使用简洁声明委托时真正发生了什么:
public delegate int PerformCalculation(int x, int y);
?
编辑:一些澄清。当你声明一个委托时,编译器会自动为你创建一个继承自 System.MulticastDelegate 的密封类。如果您使用 ildasm 查看您的程序集,您可以看到这一点。这整齐。基本上,通过一个语句,您将在编译时为您生成一个全新的类,它具有您需要的所有功能。