您当前的位置: 首页 >  c#

暂无认证

  • 0浏览

    0关注

    101061博文

    0收益

  • 0浏览

    0点赞

    0打赏

    0留言

私信
关注
热门博文

C#事件-事件本身就是一种多播委托

发布时间:2010-11-22 00:13:00 ,浏览量:0

C#中的事件就是委托的一个变量。它和属性、方法一样,都是类的成员。只不过事件是指向一个方法,当事件被触发时,就会执行对象的相关方法。 事件的这种对方法的引用并不是写死在代码里面的,而是可以进行更改的。辟如:我们在DotNet中按钮的OnClick事件,它可以指向符合OnClick事件签名的任何一个方法。 1.事件的定义使用event关键字: public event CryHandler DuckCryEvent; 其中的CryHandler是一个delegate。从上面的代码我们可以看出来:事件就是一个委托类型的变量。 private delegate void CryHandler(); 2.指定事件处理程序: 指定事件处理程序就是为事件挂接方法的过程。 DuckCryEvent +=new CryHandler(Cry); public void Cry() { Console.WriteLine("我是一只小鸭,呀依呀依呀...."); } 3.执行事件 执行事件就是调用事件所指向方法的过程。一般对事的执行代码写在相应的方法或属性中,如果方法或属性被调用时就触发事件。 public void BeShaked() { DuckCryEvent(); } 4.完整的例子:

using System; public delegate void CryHandler(); //玩具小鸭的类 class Duck { //定义小鸭的唱歌事件 public event CryHandler DuckCryEvent; public Duck() {     //把小鸭唱歌的事件挂接到Cry方法上     DuckCryEvent += new CryHandler(Cry); } //小鸭唱歌事件对应的处理方法 public void Cry() {     Console.WriteLine("我是一只小鸭,呀呀呀...."); } //小鸭被摇动 public void BeShaked() {     //执行事件     DuckCryEvent(); } }

class Class2 { public static void Main(string[]args) {     //买一只小鸭     Duck d = new Duck();     //摇一摇小鸭,它就会调触发小鸭的Cry事件,小鸭就会唱歌     d.BeShaked(); } }

关注
打赏
1655516835
查看更多评论
立即登录/注册

微信扫码登录

0.1446s