一、简述: 委托对与我们编程人员来说,一点都不陌生,在实际工作过程中,或多或少都应该是接触过 但是对与编程新手来说,对与委托的理解和使用应该还是一个坎,但是只要理解清楚了,这个坎也就过去了。 最近也经常有人在问关于委托的使用的相关问题,在此我花点时间,对与委托的个人理解进行 ...
一、简述:
委托对与我们编程人员来说,一点都不陌生,在实际工作过程中,或多或少都应该是接触过
但是对与编程新手来说,对与委托的理解和使用应该还是一个坎,但是只要理解清楚了,这个坎也就过去了。
最近也经常有人在问关于委托的使用的相关问题,在此我花点时间,对与委托的个人理解进行一个总结,希望能够给大家有所帮助作用。
二、定义:
委托,其实在我们日常生活中,也经常用到委托的,比如:律师其实就是充当了一个委托的角色,当事人委托律师在法庭上对其诉讼辩护。
在c#中,委托简单的理解就是将一个方法以参数的形式传递到另外一个方法中去,有点类似于c++中的指针的概念。
三、实现委托的步骤:
在委托定义的时候,我们只需要定义一个结构体,至于具体的实现,需要在具体的委托方法中来实现。
实现委托的步骤,我总结如下:
其一、定义:要声明一个委托的结构体:delegate void Mydelegate(type1 para1,type2 para2);
其二、声明:声明就是要声明一个委托变量:Mydelegate myDel;
其三、实例化:就是要对声明的委托对象实例化具体的委托方法:myDel=new Mydelegate(obj.InstanceMethod);
其四、参数传递:简单的理解,就是将委托以一个参数的形式传递给一个方法:MyMethod(myDel);
其五、委托方法执行:这个和普通方法实现调用一样,就是在方法MyMethod里面调用执行委托的方法:myDel(obj.InstanceMethod)
四、使用
委托的使用,根据平时的开经验,委托其实在实际的使用中,有两种场景:
其一、同步使用:同步执行委托,阻塞主流程(和平时的方法执行效果一样)
namespace MyCalculat{ /// <summary> /// 定义一个委托 /// </summary> /// <param name="num1">阐述1</param> /// <param name="num2">参数2</param> /// <returns>处理结果</returns> public delegate int MyDelegate(int num1, int num2); /// <summary> /// Calculat类 /// </summary> public class Calculat { public int Calcul(int num1,int num2,int type ) { MyDelegate myDelegate; switch (type) { case 1: myDelegate = new MyDelegate(this.Add); break; case 2: myDelegate = new MyDelegate(this.Reduce); break; //// //// 其他逻辑 //// default: myDelegate = new MyDelegate(this.Add); break; } return 0; } /// <summary> /// 计算具体逻辑处理 /// </summary> /// <param name="calDel">MyDelegate计算委托变量</param> /// <param name="num1">参数1</param> /// <param name="num2">参数2</param> /// <returns>计算处理结果</returns> public int CalculOpert(MyDelegate calDel, int num1, int num2) { //// //// 其他业务逻辑处理 //// //// 委托调用处理--同步调用 return calDel.Invoke(num1,num2); } /// <summary> /// 相加 /// </summary> /// <param name="num1">参数1</param> /// <param name="num2">参数2</param> /// <returns>结果</returns> public int Add(int num1, int num2) { return num1 + num2; } /// <summary> /// 相法 /// </summary> /// <param name="num1">参数1</param> /// <param name="num2">参数2</param> /// <returns>结果</returns> public int Reduce(int num1, int num2) { return num1 - num2; } }}
原标题:关于c#中委托使用小结
关键词:C#
*特别声明:以上内容来自于网络收集,著作权属原作者所有,如有侵权,请联系我们:
admin#shaoqun.com
(#换成@)。