1.什么是委托?
如果要把方法当作参数来传递,就需要用到委托,或者说委托是一个类型,这个类型可以赋值一个方法的引用。
2.声明委托
在声明委托之前,我们需要定义委托。委托的定义语句需要定义方法的参数和返回类型,并且使用delegate关键字定义。
delegate void My(int x);
声明了一个名为My的委托,这个委托可以指向带有一个int类型参数,并且返回类型为空的方法,其它类型的委托如下。
delegate void My1(string x, float c);
delegate string My2();
3.使用委托
class Program
{
private delegate string GetString();
static void Main(string[] args)
{
int x = 1;
GetString a=new GetString(x.ToString);//传递ToString方法
String s = a();
Console.WriteLine(s);
}
}
这里就通过使用委托类型的实例a调用了ToString方法。
实例
public delegate double MyDelegate(double param1, double param2);
class Program
{
static double Multiply(double param1, double param2)
{
return param1 * param2;
}
static double Divide(double param1, double param2)
{
return param1 / param2;
}
static void Main(string[] args)
{
MyDelegate de;
de = Multiply;
Console.WriteLine(de(66.6, 33.3));
de = Divide;
Console.WriteLine(de(66.6, 33.3));
}
}
委托多用于观察者模式!
欢迎评价和指正,谢谢!