委托与事件

 

委托是对函数的封装,可以当做给方法的特征指定一个名称。而事件则是委托的一种特殊形式,当发生有意义的事情时,事件对象处理通知过程。

委托是一种引用方法的类型。一旦为委托分配了方法,委托将与该方法具有完全相同的行为。

在发生其他类或对象关注的事情时,类或对象可通过事件通知它们。

EventArgs 是包含事件数据的类的基类。

 1     public class Cat
 2     {
 3         private string name;
 4 
 5         public Cat(string name)
 6         {
 7             this.name = name;
 8         }
 9 
10         public delegate void CatShoutEventHandler(object sender,CatShoutEventArgs args);
11 
12         public event CatShoutEventHandler CatShout;
13 
14         public void Shout()
15         {
16             Console.WriteLine("喵,我是{0}.",name);
17 
18             if (CatShout !=null)
19             {
20                 CatShoutEventArgs e=new CatShoutEventArgs();
21                 e.Name = this.name;
22                 CatShout(this,e);
23             }
24         }
25     }
 1     public class CatShoutEventArgs : EventArgs
 2     {
 3         private string name;
 4 
 5         public string Name
 6         {
 7             get { return name; }
 8             set { name = value; }
 9         }
10     }
 1     public class Mouse
 2     {
 3         private string name;
 4 
 5         public Mouse(string name)
 6         {
 7             this.name = name;
 8         }
 9 
10         public void Run(object sender,CatShoutEventArgs args)
11         {
12             Console.WriteLine("老猫{0}来了,{1} 快跑!",args.Name,name);
13         }
14     }
 1         static void Main(string[] args)
 2         {
 3             Cat cat=new Cat("Tom");
 4 
 5             Mouse mouse1=new Mouse("Jerry");
 6             Mouse mouse2=new Mouse("Jack");
 7 
 8             cat.CatShout += new Cat.CatShoutEventHandler(mouse1.Run);
 9             cat.CatShout += new Cat.CatShoutEventHandler(mouse2.Run);
10 
11             cat.Shout();
12 
13             Console.Read();
14         }

 

转载于:https://www.cnblogs.com/bjxingch/articles/7418585.html

CCF大数据与计算智能大赛-面向电信行业存量用户的智能套餐个性化匹配模型联通赛-复赛第二名-【多分类,embedding】.zip项目工程资源经过严格测试可直接运行成功且功能正常的情况才上传,可轻松复刻,拿到资料包后可轻松复现出一样的项目,本人系统开发经验充足(全领域),有任何使用问题欢迎随时与我联系,我会及时为您解惑,提供帮助。 【资源内容】:包含完整源码+工程文件+说明(如有)等。答辩评审平均分达到96分,放心下载使用!可轻松复现,设计报告也可借鉴此项目,该资源内项目代码都经过测试运行成功,功能ok的情况下才上传的。 【提供帮助】:有任何使用问题欢迎随时与我联系,我会及时解答解惑,提供帮助 【附带帮助】:若还需要相关开发工具、学习资料等,我会提供帮助,提供资料,鼓励学习进步 【项目价值】:可用在相关项目设计中,皆可应用在项目、毕业设计、课程设计、期末/期中/大作业、工程实训、大创等学科竞赛比赛、初期项目立项、学习/练手等方面,可借鉴此优质项目实现复刻,设计报告也可借鉴此项目,也可基于此项目来扩展开发出更多功能 下载后请首先打开README文件(如有),项目工程可直接复现复刻,如果基础还行,也可在此程序基础上进行修改,以实现其它功能。供开源学习/技术交流/学习参考,勿用于商业用途。质量优质,放心下载使用。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值