位置:首页 > 软件操作教程 > 编程开发 > C# > 问题详情

在C#中创建和使用事件的步骤

提问人:刘冬梅发布时间:2020-10-13

1. 为事件创建一个委托类型

     所有事件是通过委托来激活的,其返回值类型一般为void型。为事件创建一个委托类型的语法格式如下:

delegate void 委托类型名([触发事件的对象名,事件参数]);

     例如,以下语句创建一个委托类型mydelegate,其委托的事件处理方法返回类型为void,不带任何参数:

     public delegate void mydelegate();

2. 创建事件处理的方法

      当事件触发时要调用事件处理方法,需设计相应的事件处理方法,可以将它放在单独的类中,也可以放在触发事件的类中。

     例如,以下设计一个包含事件处理方法的单独类   

    class MyEventHander

    {   public void OnHandler1()

         {

              Console.WriteLine("调用OnHandler1方法");

         }

}

3. 声明事件

      事件是类成员,以关键字event声明,其一般语法格式如下:

      [修饰符]  event 委托类型名 事件名;

     其中,“修饰符”指出类的用户访问事件的方式,可以为public 、private、protected、internal、protectedinternal、static或virtual等。

      一般在声明事件的类中包含触发事件的方法。例如,以下MyEvent类包含事件声明和触发该事件的方法:

      MyEvent                  //事件类

      { public event mydelegate1 Event1; //声明事件

public void FireEvent1()    //调用这个方法来触发事件Event1

              {     if(Event1 != null)

              {

          Event1();            //Event1事件发生

                }

}

      }

4. 通过委托对象来调用被包含的方法

      向类事件(列表)中添加事件处理方法中的一个委托,这个过程称为订阅事件,这个过程通常是在主程序中进行的,首先必须声明一个包含事件的类的对象,然后将事件处理方法和该对象关联起来,其格式如下:

      事件类对象名.事件名+=new 委托类型名(事件处理方法);

     其中,还可以使用“-=”、“+”、“-”等运算符添加或删除事件处理方法。最后调用触发事件的方法便可触发事件。

    例如,以下语句就是触发前面创建的事件Event1,并在屏幕上显示“调用OnHandler1方法”:

     MyEvent b = new MyEvent();

     MyEventHander a = new MyEventHander();

     b.Event1 += new mydelegate1(a.OnHandler1);

          //把方法OnHandler1添加到事件列表中

     b.FireEvent1();     //调用触发事件的方法

继续查找其他问题的答案?

相关视频回答
回复(0)
返回顶部