【C#从入门到遛弯】第十四章 · 委托的入门介绍&日常开发的使用场景

版权声明:本文为博主原创文章,未经博主允许不得转载。 https://blog.csdn.net/iceSony/article/details/84076902

委托:把事情托付给别人或别的机构办理

这就是委托,我只负责结果,我不管实现

 

在C#开发中使用场景有:

1.自己使用委托书写代码,方便一次性调用n个函数

2.自己委托别人,我只需要有这个委托实例,别人拿去完成就行

你和小老弟A负责做模块,你做UI他做功能

你很快完成了UI的搭建然后上分去了,告诉A把各个按钮的功能做好

 

然后小老弟A趁你上分就如下完成功能

按钮1:打开摄像头,打开扬声器(对应Func1,2)

按钮2:播放《小苹果》,登陆贴吧(对应Func3,4)

按钮3:一键清除回收站,删除空文件夹(对应Func5,6)

 

A通过写了三个函数

Func1 Func2 Func3完成了功能

当然了如果A聪明一点会写成Func1-Func6 ,现在我们就假设他写了这六个函数吧

 

所以几天后,你和A把功能完成了交给老板皆大欢喜

再之后几天A辞职了,你负责这块功能

 

之后的某天

老板告诉你一天内加个按钮4,按钮5,按钮6

(在老板眼里这些功能都是实现过的,一天足够了)

 

按钮4:点击后按钮2实际功能变成  播放《青花瓷》

按钮5:点击后按钮3实际功能变成  登陆今日头条

按钮6:点击后按钮1实际功能变成  触发按钮2

一般思路:

点击按钮4后修改按钮2的逻辑,

改变绑定按钮2的点击触发函数

本来点击触发Onclick_2():Func3(“小苹果“),Func4(“今日头条“)

点击按钮4后按钮2绑定的触发变成Onclick_2_1():Func3(“青花瓷“)

点击按钮5后按钮3绑定的触发变成Onclick_3()_1:Func4(“今日头条”)

 

但是到按钮6按钮事件就变得复杂起来,你可能是播放《小苹果》,登陆贴吧

也可能因为按钮4和按钮5的原因,变成播放《青花瓷》,登陆今日头条

 

点击按钮6就需要四种情况!!!甚至还要加上判断语句!!!

这时候你就会想是不是可以简化

委托的好处就来了

很简单声明三个委托:Btn1Handler  Btn2Handler  Btn3Handler

Onclick_1()只需要调用委托Btn1Handler.Invoke()

Onclick_2()只需要调用委托Btn2Handler.Invoke()

Onclick_3()只需要调用委托Btn3Handler.Invoke()

 

按钮4的操作:Btn2Handler = null;  Btn2Handler+=Func3(“青花瓷”)

按钮5的操作:Btn3Handler = null;  Btn2Handler+=Func4(“今日头条”)

按钮6的操作:Btn1Handler = null;  Btn1Handler+= Btn2Handler

 

还记得一开始说过的委托就是不管实现,只管结果吗,你在Func1()中调用了Btn1Handler

之后你就可以不用管这个Handler干了什么,你需要知道Btn1Handler会替你完成操作就对了

 

非常类似你的老板,但是很高效,一天就完成了需求不是吗:)

通俗易懂,渐入佳境。

猜你喜欢

转载自blog.csdn.net/iceSony/article/details/84076902