我一直在深入阅读有关委托的内容,令人困惑的是,具有一种方法的委托可能与多播委托不同。但是,通过反射,您可以清楚地看到,即使只有一个方法,委托确实是从 派生的MulticastDelegate
,而不是立即从Delegate
对象派生的。
class Program
{
public delegate void MyDelegate();
static void SomeMethod()
{
}
static void Main(string[] args)
{
MyDelegate del = null;
del = new MyDelegate(SomeMethod);
Console.WriteLine(del.GetType().BaseType.Name);
Console.ReadKey();
}
}
输出:MulticastDelegate
我意识到 aMulticastDelegate
包含Delegate
对象的调用列表。我想知道是否可以Delegate
直接创建一个,以及这样做是否有任何好处,除了单独调用GetInvocationList()
和提取Delegate
对象。