posts - 17,  comments - 2,  trackbacks - 0

 使用Delegate类型设计自定义事件

作者:罗会涛


    在C#编程中,除了Method和Property,任何Class都可以有自己的事件(Event)。定义和使用自定义事件的步骤如下:

 (1)在Class之外定义一个delegate类型,用于确定事件程序的接口  
 (2)在Class内部,声明一个public event变量,类型为上一步骤定义的delegate类型  
 (3)在某个Method或者Property内部某处,触发事件  
 (4)Client程序中使用+=操作符指定事件处理程序 


例子:  

  1.  // 定义Delegate类型,约束事件程序的参数 
  2.    public delegate void MyEventHandler(object sender, long lineNumber) ; 
  3.    public class DataImports 
  4.    { 
  5.       // 定义新事件NewLineRead 
  6.       public event MyEventHandler NewLineRead ; 
  7.       public void ImportData() 
  8.       { 
  9.          long i = 0 ; // 事件参数 
  10.          while() 
  11.          { 
  12.             i++ ; 
  13.             // 触发事件 
  14.             if( NewLineRead != null ) NewLineRead(this, i); 
  15.             //... 
  16.          } 
  17.          //... 
  18.       } 
  19.       //... 
  20.    } 
  21. // 以下为Client代码 
  22.    private void CallMethod() 
  23.    { 
  24.       // 声明Class变量,不需要WithEvents 
  25.       private DataImports _da = null
  26.       // 指定事件处理程序 
  27.       _da.NewLineRead += new MyEventHandler(this.DA_EnterNewLine) ; 
  28.       // 调用Class方法,途中会触发事件 
  29.       _da.ImportData(); 
  30.    } 
  31.    // 事件处理程序 
  32.    private void DA_EnterNewLine(object sender, long lineNumber) 
  33.    { 
  34.       // ... 
  35.    } 

 

posted on 2008-11-03 00:55 BeyondCN 阅读(588) 评论(0)  编辑 收藏 引用 所属分类: .NET

只有注册用户登录后才能发表评论。
网站导航: 博客园   IT新闻   BlogJava   知识库   博问   管理