我刚学习C#,有两个关于delegate
的问题。
MSDN显示Delegate
类只有两个构造函数,每个都接受两个参数。然而,在下面的程序中,我使用了一个看似只有一个参数的构造函数来实例化Delegate
对象(请参见被注释的行)。
using System;
static class Program
{
public delegate void MyDelegate();
static void MyMethod()
{
Console.WriteLine("I'm inside MyMethod!");
}
static void Main()
{
MyDelegate myDelegate = new MyDelegate(MyMethod); // Constructor Call
myDelegate();
}
}
我有个疑问:我是否理解错了什么?
我的第二个问题是:在声明一个或多个参数的delegate
时,为什么需要给参数命名?在C++中,我们可以在类内部做出这样的声明:
public delegate void MyOtherDelegate(int, int, string);