委托的基本概念,
委托(Delegate) 是存有对某个方法的引用的一种引用类型变量;
引用可在运行时被改变;
委托(Delegate)特别用于实现事件和回调方法;
所有的委托(Delegate)都派生自 System.Delegate 类;
写一个例子,保存为test1.cs;
using System;
delegate int MyNumber(int n);
namespace MyTest
{
class TestDelegate
{
static int num = 100;
public static int AddNum(int p)
{
num += p;
return num;
}
public static int MultNum(int q)
{
num *= q;
return num;
}
public static int getNum()
{
return num;
}
static void Main(string[] args)
{
MyNumber nc1 = new MyNumber(AddNum);
MyNumber nc2 = new MyNumber(MultNum);
nc1(250);
Console.WriteLine("Value of Num: {0}", getNum());
nc2(50);
Console.WriteLine("Value of Num: {0}", getNum());
Console.ReadKey();
}
}
}
delegate int MyNumber(int n);
声明委托,此委托可用于引用任何一个带有一个整型参数并返回一个整型值的方法;
MyNumber nc1 = new MyNumber(AddNum);
实例化委托,括号里面是方法名;
放到netframework目录,编译运行如下;