如果我们声明了一个自己的代表,那么它就是对系统定义的类System.delegate的一个扩展。在代表的实例中,我们可以封装一个静态方法,也可以封装一个非静态的方法。我们看下面的例子:
程序清单4-2:
using System;delegate int MyDelegate(); //声明一个代表public class MyClass{ public int InstanceMethod(){ console.WriteLine("Call the instance method."); return 0; } static public int StaticMethod(){ Console.WriteLine("Call the static method."); return 0; } } public class Test { static public void Main() { MyClass p=new MyClass(); //将代表指向非静态的方法 InstanceMethod MyDelegate d=new MyDelegate(p.InstanceMethod); //调用非静态方法 d(); //将代表指向静态的方法StaticMethod d=new MyDelegate(MyClass.StaticMethod); //调用静态方法 d(); }}程序的输出结果是:call the instance method.call the static method.