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结果: