C# 委托
基本步骤
(1)定义委托类型,其定义类似方法的定义,只是多了一个delegate;
(2)实例化委托,委托也是属于类类型所以用也用new关键字实例化;
委托的实例化用一个方法名作为参数,并且该方法的定义必须符合委托的定义;
即参数个数、参数类型、返回类型与委托一样
(3)把委托实例化的对象当参数传递给其他方法或直接执行委托(实质就是在执行委托包装的方法);
C#委托可以理解为函数的包装,他可以使方法作为参数来传递给另一个方法
--委托是类类型--委托实例可以调用方法
例:
1 class HelloWorld 2 { 3 //定义委托类型,其定义类似方法的定义,只是多了一个delegate; 4 delegate void Mydelegate(int a,int b); 5 static void Main(string[] args) 6 { 7 //声明与实例化委托变量 8 Mydelegate mydelegate=new Mydelegate(new HelloWorld().Add); 9 //将实例化的对象mydelegate作为参数传递给方法 10 new HelloWorld().Go(mydelegate); 11 Console.ReadKey(); 12 } 13 void Add(int a=0,int b=0) 14 { 15 Console.Write("This sum is {0}",a+b); 16 } 17 private void Go(Mydelegate mydelete) 18 { 19 //在方法中调用委托(隐式调用) 20 mydelete(10,20); 21 //(显式调用)委托是类类型 委托实例可以调用方法Invoke方法是委托的内置方法 22 //隐式实质也是调用Invoke方法执行的 23 mydelete.Invoke(10,20); 24 25 } 26 }
结果为: