我正在用C#学习代表。
阅读this Microsoft C# Documents时,注意到以下代码。
// Declare a delegate.
delegate void Del(string str);
// Declare a method with the same signature as the delegate.
static void Notify(string name)
{
Console.WriteLine("Notification received for: {0}", name);
}
// Create an instance of the delegate.
Del del1 = new Del(Notify); //why delegate can be initialized by this way.
从此answer
委托关键字是让编译器为你做一些魔术。 当您使用自定义签名声明新委托时,
编译器为您从MulticastDelegate派生的新类型 (反过来来自代表)。
所以Del是从MuticastDelegate派生的类型。但MulticastDelegate和Delegate都没有只带一个参数的构造函数。 该代码如何工作?
Del del1 = new Del(Notify);
编译器是否对此做了什么?