首页 / C# / C#委托和事件的使用示例
C#委托和事件的使用示例
内容导读
互联网集市收集整理的这篇技术教程文章主要介绍了C#委托和事件的使用示例,小编现在分享给大家,供广大互联网技能从业者学习和参考。文章包含1826字,纯文字阅读大概需要3分钟。
内容图文
![C#委托和事件的使用示例](/upload/InfoBanner/zyjiaocheng/822/f10c43cfc7314742a8dd02be56d7a44f.jpg)
一、委托
使用委托时要先实例化,和类一样,使用new关键字产生委托的新实例,然后将一个或者多个与委托签名匹配的方法与委托实例关联。随后调用委托时,就会调用所有与委托实例关联的方法。
与委托关联可以是任何类或者结构中的方法,可以是静态方法,只要是可以访问的方法都可以。
1.创建一个委托类型使用关键字delegate(委托)
输出如下:
2.一个委托实例,可关联多个方法:
其中D4 = TestMethod1;用“=”而不能“+=”,是因为之前D4未实例化,可以使用下面的代码:
MyDelegate D4 = new MyDelegate(TestMethod1); D4 += TestMethod2; D4 += TestMethod3;
但是如果使用以下方式,会出现编译错误: “MyDelegate”方法没有采用“0”个参数的重载:
MyDelegate D4 = new MyDelegate(); D4 += TestMethod1;
详情见:http://www.tracefact.net/tech/009.html
3.移除一个委托实例中的方法 使用“-=”:
二、事件
事件自身就是委托类型,由于委托可以绑定和调用多个方法,所以会为事件的处理带来方便。类型只需要对外公开事件,就可以与外部的其它地方关联,从而实现事件订阅
要在类中声明事件(只不过不管是不是声明为public,它总是被声明为private。另外,它还有两个方法,分别是add_MakeGreet和remove_MakeGreet,这两个方法分
别用于注册委托类型的方法和取消注册。实际上也就是: “+= ”对应 add_MakeGreet,“-=”对应remove_MakeGreet。而这两个方法的访问限制取决于声明事件时的访问限制符。)
1.首先要定义用来作为事件封装类型的委托,用event关键字来声明事件。
2.为了允许派生类重写引发事件的代码,通常会在类中声明一个受保护的方法,习惯上命名On<事件名>
3.EventArgs类参数
由于不同的事件要传递的参数不同,更多时候是从EventArgs类派生的子类的实例,显然EventHandler委托时不能满足各种情况的。
如果针对不同的事件也定义一个对应的委托,数量一旦多起来,不好管理,为了解决这个问题,.NET类库提供了一个带有泛型参数的事件
处理委托:
public delegate void EventHandler<TEventArgs>(object sender,TEventArgs e); TEventArgs 是一个泛型参数
转自:https://www.cnblogs.com/hjxzjp/p/7667536.html
深入理解参照:http://www.tracefact.net/tech/009.html
内容总结
以上是互联网集市为您收集整理的C#委托和事件的使用示例全部内容,希望文章能够帮你解决C#委托和事件的使用示例所遇到的程序开发问题。 如果觉得互联网集市技术教程内容还不错,欢迎将互联网集市网站推荐给程序员好友。
内容备注
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 gblab@vip.qq.com 举报,一经查实,本站将立刻删除。
内容手机端
扫描二维码推送至手机访问。