C#的事件机制

2008-03-31 10:50:26.0     推荐:0    收藏:0    评论:0     来源:e800.net频道
C#的事件机制是基于委托实现的。实现一个事件,要先定义一个委托类型

  class1

  {

  public delegate void mydelegate (myEventArgs e);

  public event mydelegate event1;

  }

  然后我们可以使用+=和-=注册、移除事件

  class1.event1 += new mydelegate(new myEventArgs());

  在class中引发事件时最好这样

  class1

  {

  public fireEvent()

  {

  if(event1 != null)

  event1();

  }

  }

  如果不想声明自己的委托类型的话,可以使用System.EventHandler的委托类型

  public delegate void EventHandler(object sender, EventArgs e);

  其中EventArgs转送附加参数。

  可以实现自己的EventArgs类

  class myEventArgs:EventArgs

  {

  }

  类名最好以EventArgs 结尾,这是个默认规则

  调用时如果不想使用参数可以传递

  EventArgs.Empty

  事涫当澈笞隽撕芏喙ぷ鳎远梢桓鑫惺道⒁桓鲎⒉嵛械腶dd_XXX方法、一个注销委托的

  Remove_XXX方法。事实上这两个方法可以自己定制。只要声明事件时使用以下语法:

  public event MyDelegate1 Event1

  {

  add

  {

  }

  remove

  {

  }

  }

  在其中实现自己的注册函数即可。看上去是不是很像属性的定义:)
您可以针对本文进行:[评论]  [收藏]  [推荐]  
  • 共有0条评论  点击查看更多评论
  • 网友评论仅供网友表达个人看法,并不表明e800同意其观点或证实其描述
我想发表评论:
用户名密码
  • 匿名发表
    验证码: