科技行者

行者学院 转型私董会 科技行者专题报道 网红大战科技行者

知识库

知识库 安全导航

至顶网软件频道C#的事件机制

C#的事件机制

  • 扫一扫
    分享文章到微信

  • 扫一扫
    关注官方公众号
    至顶头条

     C#的事件机制是基于委托实现的。实现一个事件。

作者:中国IT实验室 来源:中国IT实验室 2007年9月28日

关键字: C# 编程

  • 评论
  • 分享微博
  • 分享邮件
  
  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
  
  事件其实背后做了很多工作,自动生成一个委托实例、一个注册委托的add_XXX方法、一个注销委托的
  
  Remove_XXX方法。事实上这两个方法可以自己定制。只要声明事件时使用以下语法:
  public event MyDelegate1 Event1
  {
  add
  {
  }
  remove
  {
  }
  }
  
  在其中实现自己的注册函数即可。看上去是不是很像属性的定义:)

查看本文来源

    • 评论
    • 分享微博
    • 分享邮件