当前位置:首页 > 房产信息

func 面试常考:C#委托和事件

一、前言

刚开始工作的时候,你觉得委托和事件有些神秘,但当你理解的时候,你觉得并没有你想象的那么难。当你在项目中使用它们时,你会发现委派和事件是非常好的。这篇博文可以看作是对代表团和事件的梳理和总结。

二.委托

C#中的委托相当于C++中的指针函数,但是委托是面向对象的、安全的,并且是一个特殊的类。当然,它们也是引用类型,委托将引用传递给方法。

2.1、代表

要声明委托,必须使用关键字“delegate”。首先声明委托,然后实例化委托。至少0个参数,最多32个参数

格式如下:

privatedelegatestringetasstring;

委托是一个类,所以它的实例化与类的实例化相同,只是它总是接受一个构造函数,该构造函数将委托方法作为参数。有两种方法可以调用委托方法,如下所示:

inti = 10

var方法= NewGetastring(I . ToString);

//调用方法一

控制台。WriteLine($“method method { method }”);

//调用方法2

console . write line($ " method . invoke method { method。invoke }”;

运行结果:

事件发布代码:

publicclass bookinfoeventargs:EventArgs

{

publicBookInfoEventArgs(stringbookName)

{

BookName = bookName

}

publicstringBookName { get设置;}

}

publicclassBookDealer经销商

{

//泛型委托,定义了两个参数,一个是对象发送者,一个是泛型TEventArgs的e

//简化以下定义

//public delegate void new bookinfoeventhandler(object sender,BookInfoEventArgs e);

//公共事件new bookinfoeventhandler new bookinfo;

publiceventEventHandler<。BookInfoEventArgs>。NewBookInfo

public void new book(stringbookName)

{

RaiseNewBookInfo(bookName);

}

publicationvoitraisenewbookinfo(stringbookName)

{

NewBookInfo?。Invoke( this,new bookinfoeventargs(bookName));

}

}

事件订阅者

publicclassConsumer

{

publicConsumer( stringname)

{

Name = name

}

publicstringName { get设置;}

public void new bookhere(object sender,BookInfoEventArgs e)

{

控制台。WriteLine($ "用户:{Name},收到标题:{ e . BookName } ";

}

}

var经销商= new book经销商;

var consumer 1 = new consumer(" user a ");

经销商。NewBookInfo += consumer1。NewBookHere

经销商。new book(" book 112 ");

var consumer 2 = new consumer(" user b ");

经销商。NewBookInfo += consumer2。NewBookHere

经销商。new book(" book _ ABC ");

经销商。NewBookInfo -= consumer1。NewBookHere

经销商。new book(" book _ all ");

运行结果

通过这个例子,我们可以知道Object sender参数代表事件发布者本身,EventArgs e是监控对象。深入了解后,你觉得没有想象中那么难吗?

四.总结

在这里,我们谈论代表和事件。在中使用委托和事件。Net开发可以减少依赖和层耦合,开发出可重用性更高的组件。

版权声明:本文收集自网友或由网友提供。如有侵权,请告知版主或留言,微信官方账号立即删除。

https://www . cn blogs . com/snail blog/archive/2019/09/14/11520438 . html

1.《func 面试常考:C#委托和事件》援引自互联网,旨在传递更多网络信息知识,仅代表作者本人观点,与本网站无关,侵删请联系页脚下方联系方式。

2.《func 面试常考:C#委托和事件》仅供读者参考,本网站未对该内容进行证实,对其原创性、真实性、完整性、及时性不作任何保证。

3.文章转载时请保留本站内容来源地址,https://www.lu-xu.com/fangchan/754015.html

上一篇

巴林右旗政府网 【扩散】 巴林右旗人民政府关于森林草原禁火的通知(蒙汉文)

下一篇

全运会男篮直播v 2017全运会男篮直播

韩雪的老公是谁 韩雪看病爆粗口事件真相 韩雪老公是谁家庭背景资料

韩雪的老公是谁 韩雪看病爆粗口事件真相 韩雪老公是谁家庭背景资料

  6月29日,韩雪看病事件引发许多网友们的关注,韩雪声称自己遇到了不负责任的医生忍无可忍爆粗口,那么韩雪看病爆粗口事件真相是什么呢?韩雪老公是谁家庭背景资料又如何呢?  但随后韩雪反省并致歉,称:“的确是我修养还不够,对...

关之琳高尔夫是什么梗 关之琳被塞高尔夫球事件是怎么回事

关之琳高尔夫是什么梗 关之琳被塞高尔夫球事件是怎么回事

  现在各种宅男心中的女神是越来越多,不过这些女神身处是是非非的娱乐圈中,一般都会遭遇一些令人尴尬的事情,这些也算是娱乐圈的内幕传闻吧。九十年代香港著名女星关之琳,也算是当时众多影迷心中的女神级人物了,可是关之琳曾被媒体爆...

银城宝船听涛 银城地产6日敲钟上市,公开披露被罚事件或使其估值不太理想

银城宝船听涛 银城地产6日敲钟上市,公开披露被罚事件或使其估值不太理想

作为南京当地知名的房地产企业,殷诚房地产(现称殷诚国际控股)迎来了一个历史性的时刻。据悉,殷诚国际控股将于3月6日在港上市,敲响2019年房地产企业第二股的钟声。这是继南京的另一家房地产公司鸿洋地产在香港上市之后。 前世,创业之路漫漫 追溯白银城的发展史,必须从上个...

胃病口臭的治疗方法 幽门杆菌“克星”公布!烧水时撒1把,健肠胃,除口臭

  • 胃病口臭的治疗方法 幽门杆菌“克星”公布!烧水时撒1把,健肠胃,除口臭
  • 胃病口臭的治疗方法 幽门杆菌“克星”公布!烧水时撒1把,健肠胃,除口臭
  • 胃病口臭的治疗方法 幽门杆菌“克星”公布!烧水时撒1把,健肠胃,除口臭
许玮伦男友 揭秘许玮伦车祸灵异事件 许玮伦周渝民分手原因是什么

许玮伦男友 揭秘许玮伦车祸灵异事件 许玮伦周渝民分手原因是什么

  揭秘许玮伦车祸灵异事件 许玮伦周渝民分手原因是什么  时隔多年,很多人们似乎也渐渐淡忘了当时因车祸不幸去世的许玮伦,不过许玮伦的两大绯闻男友还依旧活跃在娱乐圈,关于许玮伦的信息大家也许还不是很了解,下面我们就来详细了解...

一步之遥gl 1694 件 AI 事件大盘点,哪些事让你记忆深刻?

  • 一步之遥gl 1694 件 AI 事件大盘点,哪些事让你记忆深刻?
  • 一步之遥gl 1694 件 AI 事件大盘点,哪些事让你记忆深刻?
  • 一步之遥gl 1694 件 AI 事件大盘点,哪些事让你记忆深刻?
努曼格莫多夫 UFC嘴炮袭击事件:麦格雷戈场外“打群架”,被批“疯子”

努曼格莫多夫 UFC嘴炮袭击事件:麦格雷戈场外“打群架”,被批“疯子”

网易体育4月6日报道,从出轨闹离婚,追裁判,到前不久在酒吧和黑手党打架,“嘴炮”康纳·麦格雷戈总是在格斗场外的新闻头条,今天他出了大事。据外媒报道,他半夜带领一群“小弟”追逐UFC玩家的大巴,造成玩家受伤,引发骚乱。所以“嘴炮”被全城通缉。经过一夜的追捕,纽约警察局...

四一二事件 蔡元培在“四一二”事变中充当了什么角色

  • 四一二事件 蔡元培在“四一二”事变中充当了什么角色
  • 四一二事件 蔡元培在“四一二”事变中充当了什么角色
  • 四一二事件 蔡元培在“四一二”事变中充当了什么角色