当前位置:K88软件开发文章中心编程语言.NET.NET01 → 文章内容

在C#中自定义事件

减小字体 增大字体 作者:佚名  来源:翔宇亭IT乐园  发布时间:2018-12-31 11:47:17

:2010-08-25 07:36:00

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

1)在Class之外定义一个delegate类型,用于确定事件程序的接口;

2)在Class内部,声明一个public event变量,类型为上一步骤中定义的delegate类型;

3)在某个方法(Method)或者属性(Property)内部某处触发事件;

4)客户程序中使用+=操作符指定事件处理程序。

下面用一个具体的例子来说明这个问题:

// 定义Delegate类型,约束事件程序的参数

 public delegate void MyEventHandler(object sender, long lineNumber) ;

public class DataImports
        { 
                // 定义新事件NewLineRead 
                public event MyEventHandler NewLineRead ;

                public void ImportData() 
                { 
                        long i = 0 ; // 事件参数 
                        while() 
                        { 
                                i++ ; 
                                // 触发事件 
                                if( NewLineRead != null ) NewLineRead(this, i); 
                                //... 
                        } 
                        //... 
                } 
                //... 
        }

        // 以下为Client代码

        private void CallMethod() 
        { 
                // 声明Class变量,不需要WithEvents 
                private DataImports _da = null; 
                // 指定事件处理程序 
                _da.NewLineRead += new MyEventHandler(this.DA_EnterNewLine) ; 
                // 调用Class方法,途中会触发事件 
                _da.ImportData(); 
        } 
        // 事件处理程序 
        private void DA_EnterNewLine(object sender, long lineNumber) 
        { 
                // ... 
        }



在C#中自定义事件