失眠网,内容丰富有趣,生活中的好帮手!
失眠网 > 【委托】—是什么怎么用什么用

【委托】—是什么怎么用什么用

时间:2023-11-06 19:02:45

相关推荐

【委托】—是什么怎么用什么用

最近在研究委托,在此跟大家分享一下。今天先说说委托是什么以及委托怎么用。

概念:

官方的讲:委托就是一种引用方法的类型,一旦为委托分配了方法,委托将与该方法具有完全相同的行为。委托方法的使用可以像其他任何方法一样,具有参数和返回值。委托可以看做是对函数的抽象,是函数的"类",委托的实例将代表一个具体的函数。

另一种教容易理解的解释:委托是一个类,它定义了方法的类型,使方法可以当作另一个方法的参数来进行传递。

为了让大家更好地理解,我再举个例子:

实例:

public void isontime()//到时间了,该去接孩子了{Console.WriteLine("妈妈:还没下班,怎么办\n"); }

没关系呀,有保姆呢,委托给保姆去做就可以了。

class mother{//声明委托help,即定义了一个方法的类型为 help。public delegate void help();//定义了一个help委托类型的事件。也可以理解为委托的实例。public event help delegation;public void istime()//到时间了,该去接孩子了{Console.WriteLine("妈妈:时间到了,该去接孩子了\n");//委托给保姆delegation();} }

保姆类:

class nurse{public void getorder()//收到命令{Console.WriteLine("保姆:收到");Console.WriteLine("保姆:孩子接回来了\n");}}

那妈妈怎么告诉保姆去接孩子呢?其实很好说,保姆本就有接孩子的职责,所以只需要妈妈说一声到时间了就可以了。

class main{static void Main(string[] args){//实例化mother mom= new mother();nurse nur=new nurse();nurses nurs = new nurses();//将保姆的方法注册到妈妈mom.delegation += new mother.help(nur.getorder);//妈妈:时间到了mom.istime();Console.Read();}}

结果:

这就是委托,和生活中委托的意思很相近。

现在再来理解关于委托的官方解释,应该就不难了:

委托就是一种引用方法的类型:

public delegate void help();定义了一个方法的类型,即方法的类型为help。把方法当做参数传递的时候可以这样:function(help function1);

一旦为委托分配了方法,委托将与该方法具有完全相同的行为

如上面的例子:mom.delegation += new mother.help(nur.getorder); 给委托delegation分配了getorder方法,之后delegation(),就相当于getorder();

下面再借上面的例子说说使用委托的流程:

流程:

该委托是用到事件的:

1.声明一个委托:

public delegate void help();

2.声明一个事件:

public event help delegation;

3.将被委托的方法注册到事件:

mom.delegation += new mother.help(nur.getorder); //+=是注册,-=是注销

4.触发需要委托的方法:

mom.istime();

5.需要委托的方法中有事件的触发

public void istime()//到时间了,该去接孩子了

{

Console.WriteLine("妈妈:时间到了,该去接孩子了\n");

//委托给保姆

delegation();

}

6.而事件中注册了被委托的方法,所以被委托的方法被执行

public void getorder()//不用担心

{

Console.WriteLine("保姆:收到");

Console.WriteLine("保姆:孩子接回来了\n");

}

总结:

面向对象的思想:职责分明。自己不用做的事,就委托给该干这事的人。

通过委托,实现了mother和nurse之间的解耦。即mother要用nurse的方法,但没有直接调用。

提高了代码的可扩展性,如果此时mother还有别的事情,如要买菜,就可以把买菜委托给另一个nurse,这时,只需要再添加一个nurse类,里面写上买菜的方法,在主方法中将买菜注册到委托的事件中。就可以实现委托另一个nurse去买菜了。整个过程不会对原有程序进行任何改动。所以使用委托,提高了程序的可扩展性。

如果觉得《【委托】—是什么怎么用什么用》对你有帮助,请点赞、收藏,并留下你的观点哦!

本内容不代表本网观点和政治立场,如有侵犯你的权益请联系我们处理。
网友评论
网友评论仅供其表达个人看法,并不表明网站立场。