在 C# 语言中命名方法委托是最常用的一种委托,其定义的语法形式如下。
修饰符 delegate 返回值类型 委托名 ( 参数列表 );
从上面的定义可以看出,委托的定义与方法的定义是相似的。例如定义一个不带参数的委托,代码如下。
public delegate void MyDelegate();
在定义好委托后就到了实例化委托的步骤,命名方法委托在实例化委托时必须带入方法的具体名称。
实例化委托的语法形式如下。
委托名 委托对象名 = new 委托名 ( 方法名 );
委托中传递的方法名既可以是静态方法的名称,也可以是实例方法的名称。
需要注意的是,在委托中所写的方法名必须与委托定义时的返回值类型和参数列表相同。
在实例化委托后即可调用委托,语法形式如下。
委托对象名 ( 参数列表 );
在这里,参数列表中传递的参数与委托定义的参数列表相同即可。
下面分别通过两个实例来演示在委托中应用静态方法和实例方法的形式。
【实例 1】创建委托,在委托中传入静态方法于控制台输出“Hello Delegate!”。
根据题目要求,代码如下。
class Program { public delegate void MyDelegate(); static void Main(string[] args) { MyDelegate myDelegate = new MyDelegate(Test.SayHello); myDelegate(); } } class Test { public static void SayHello() { Console.WriteLine("Hello Delegate!"); } }
执行上面的代码,效果如下图所示。