C#中的代理其实与C++和delphi中的函数指针一样,代码如下:
///
//程序名称:3-10.cs
//程序功能:使用代理类型
using System;
delegate int MyTest(); //声明一个代理
public class Class1
{
public int InstanceMethod()
{
Console.WriteLine("正在调用非静态方法InstanceMethod()...");
return 0;
}
static public int StaticMethod()
{
Console.WriteLine("正在调用静态方法StaticMethod()...");
return 0;
}
}
public class Hello
{
static public void Main()
{
Class1 p = new Class1();
MyTest m = new MyTest(p.InstanceMethod);//将代理指向非静态方法InstanceMethod()
m(); //调用非静态方法
m = new MyTest(Class1.StaticMethod);//将代理指向静态方法StaticMethod()
m();
Console.ReadLine();
}
}