分类:
C#
1.什么是委托?
委托在C#里的意义和在现实里差不多,从字面意思理解即可。举个例子:领导委托小张去传递个文件,这就是委托。
而在C#中同样是这样的道理。只是整个动作中有两个对象,施加委托者和委托承担者是两个对象而不是人而已。
委托的代码写法:
public delegate void MessageManager();
2.举例说话
举个例子,某公司领导Manager有件关于代码处理的工作(Coding)需要委托个下属小张(MrZhang)去做。
a.下面看领导(Manager)和小张(MrZhang)的内部动作代码,下面是
public delegate void MessageManager();
上面是施加委托者的方法代码。
b.下面看小张(MrZhang)的内部代码:
public class MrZhang { public static void Coding() { MessageBox.Show("小张Coding已完成"); } }
小张本身含有能完成Coding工作的能力。
c.下面看委托部分了,领导如何委托给小张。
MessageManager Manager = new MessageManager(MrZhang.Coding); Manager();
MessageManager Manager = new MessageManager(MrZhang.Coding);
这是委托的具体动作,要做的动作是Coding,而这件事儿委托给MrZhang来做了。
1.委托的方法必须要加上,因为委托的构造函数是不为空的。
2.委托的参数和返回类型,都要和你要具体委托的方法要一致
然后开始执行Manager();
d.整体代码如下,读者可以复制到工程尝试下:
public class MainWindow { delegate void MessageManager(); public MainWindow() { InitializeComponent(); MessageManager Manager = new MessageManager(MrZhang.Coding); Manager(); } } public class MrZhang { public static void Coding() { MessageBox.Show("小张Coding已完成"); } }
e.委托事件可以同时委托给多个对象,如下:
public MainWindow() { InitializeComponent(); MessageManager Manager = new MessageManager(MrZhang.Coding); //通过+=绑定委托 Manager += new MessageManager(MrLiu.Coding); Manager(); //通过-=解绑 Manager -= new MessageManager(MrLiu.Coding); }
评价
排名
6
文章
6
粉丝
16
评论
8
{{item.articleTitle}}
{{item.blogName}} : {{item.content}}
ICP备案 :渝ICP备18016597号-1
网站信息:2018-2025TNBLOG.NET
技术交流:群号656732739
联系我们:contact@tnblog.net
公网安备:50010702506256
欢迎加群交流技术