1、什么是委托
把方法当做参数来传递的话,就要用到委托,简单来说,委托就是一个类型,这个类型可以赋值一个方法的引用。
1.1、定义一个委托和函数差不多,区别在于:
1)、定义委托需要加上一个delegate关键字。
2)、委托的定义不需要函数体。
3)、当给一个委托的变量赋值的时候,返回值跟参数列表必须一样!
2、 public delegate double MyDelegate(double pamarate1,double pamatate2);//相当于声明了一个新的函数。
static double Multiply(double parate1,double parate2)
{
return parate1 * parate2;
}
static double Divid(double parater1, double parater2)
{
return parater1 /parater2;
}
static void Main(string[] args)
{
MyDelegate de;//利用定义的委托声明了一个新的变量。
de=Multiply;//利用委托指向了一个函数。
Console.WriteLine(de(12.0,5.42));
de = Divid;
Console.WriteLine(de(15.0,2.1));
Console.ReadKey();
}
3、运行结果:
4、
4.1实例
class Program
{
// 声明一个委托,其实就是个“命令”
public delegate void Method();
static void Method1()
{
Console.WriteLine(“Method1方法被引用了!”);
}
static void Method2()
{
Console.WriteLine(“Method2方法被引用了!”);
}
static void Main(string[] args)
{
Method method = new Method(Method1); // 这里就是具体阐述这个命令是干什么的
method(); // 这时候委托被附上了具体的方法
Console.ReadKey();
}
}
4.2结果: