【定义】:委托是一个类,它定义了方法的类型,使得可以将方法当作另一个方法的参数来进行传递,这种将方法动态地赋给参数的做法,可以避免在程序中大量使用If-Else(Switch)语句,同时使得程序具有更好的可扩展性。
//////////////////////////////////////////////////////////////////////
回调函数(CallBack)是WINDOWS编程中的一个重要部分,.NET以委托的形式实现了函数指针的概念,而且它是类型安全的。
 我们习惯把数据作为参数传递给方法,而有时某个方法执行的操作并不是针对数据进行的,而是要对另一个方法进行操作,这就比较复杂了,在编译时我们并不知道第二个方法是什么,这个信息只能在运行时得到,所以需要把第二个方法作为参数传递给第一个方法。
在这种情况下我们就要使用委托来解决问题了。
委托的声明:public delegate void MyDelegate(string str);
 其中void是返回类型,str是参数。
注:委托并不是方法,它是一种特殊的类型
以下是一个委托的示例:
using System; using System.Collections.Generic; using System.Linq; using System.Text;
namespace InvokeDelegate { public class InvokeDelegate { public static void ConsoleOne(string str) { Console.WriteLine("我喜欢的明星: {0}", str);
}
public static void ConsoleTwo(string str) { Console.WriteLine("我喜欢的明星: {0}", str);
}
public void ConsoleThree(string str) { Console.WriteLine("我喜欢的明星: {0}", str);
}
public class InvokeDelegate1 { public static void P1(string str) { Console.WriteLine("我喜欢的明星: {0}", str); } }
public class InvokeDelegate2 { public void P1(string str) { Console.WriteLine("我喜欢的明星: {0}", str); } }
} }
using System; using System.Collections.Generic; using System.Text;
namespace DelegateStudy { public delegate void MyDelegate(string str); class Program { static void Main(string[] args) { MyDelegate m1 = new MyDelegate(InvokeDelegate.InvokeDelegate.ConsoleOne); m1("权相宇");
MyDelegate m2 = new MyDelegate(InvokeDelegate.InvokeDelegate.ConsoleTwo); m2("宋慧乔");
MyDelegate m3 = new MyDelegate(new InvokeDelegate.InvokeDelegate().ConsoleThree); m3("金喜善");
MyDelegate m4 = new MyDelegate(m3); m4("金在元");
//组合两个委托
MyDelegate m5 = m1 + m2; m5 += m3; m5("李连杰");///m1,m2,m3
//从组合中删除委托m3 MyDelegate m6 = m5 - m3; m6("成龙"); m6 -= m3; m6("成龙");
MyDelegate m7 = new MyDelegate(InvokeDelegate.InvokeDelegate.InvokeDelegate1.P1); m7("Rain");
MyDelegate m8 = new MyDelegate(new InvokeDelegate.InvokeDelegate.InvokeDelegate2().P1); m8("韩佳人"); } } }
pia云怎么样?pia云是一家2018的开办的国人商家,原名叫哔哔云,目前整合到了魔方云平台上,商家主要销售VPS服务,采用KVM虚拟架构 ,机房有美国洛杉矶、中国香港和深圳地区,洛杉矶为crea机房,三网回程CN2 GIA,带20G防御。目前,Pia云优惠促销,年付全场8折起,香港超极速CN2季付活动,4核4G15M云服务器仅240元/季起,香港CN2、美国三网CN2深圳BGP优质云服务器超高性...
				  修罗云怎么样?修罗云是一家国内老牌商家,修罗云商家以销售NAT机器起家,国内的中转机相当不错,给的带宽都非常高,此前推荐的也都是国内NAT VPS机器。今天,云服务器网(www.yuntue.com)小编主要介绍一下修罗云的香港云服务器,适合建站,香港沙田cn2云服务器,2核2G,5M带宽仅70元/月起,同时香港香港大带宽NAT VPS低至50元/月起,性价比不错,可以尝试一下!点击进入:修罗云官...
				  云如故是一家成立于2018年的国内企业IDC服务商,由山东云如故网络科技有限公司运营,IDC ICP ISP CDN VPN IRCS等证件齐全!合法运营销售,主要从事自营高防独立服务器、物理机、VPS、云服务器,虚拟主机等产品销售,适合高防稳定等需求的用户,可用于建站、游戏、商城、steam、APP、小程序、软件、资料存储等等各种个人及企业级用途。机房可封UDP 海外 支持策略定制 双层硬件(傲...