首页 > 代码库 > C# 事件

C# 事件


  下面的过程演示了如何将符合标准 .NET 模式的事件添加到您的类和结构中。  .NET类库中的所有事件均基于 EventHandler 委托,定义如下:  

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

  你可以尝试手动输入 EventHandler ,然后按下“F12”跳转到定义:

技术分享

 

  .NET Framework 2.0 引入了此委托的一个泛型版本,即 EventHandler<TEventArgs>

  【备注】虽然您定义的类中的事件可基于任何有效委托类型(甚至是可返回值的委托),但是,通常建议您使用 EventHandler 让事件基于 .NET 模式,如下面的示例所示。

 

采用 EventHandler 模式发布事件

  1.(如果不需要与事件一起发送自定义数据,请跳过此步骤,进入步骤 3a。)在发行者类和订阅方类均可看见的范围中声明自定义数据的类。  然后添加保留您的自定义事件数据所需的成员。  在此示例中,会返回一个简单字符串。

1     class MyEventArgs : EventArgs2     {3         public string Message { get; private set; }4 5         public MyEventArgs(string message)6         {7             Message = message;8         }9     }

 

  2.(如果您使用的是 EventHandler<TEventArgs> 的泛型版本,请跳过此步骤。)在发布类中声明一个委托。  为它指定以 EventHandler 结尾的名称。  第二个参数指定自定义 EventArgs 类型。 

    delegate void MyEventHandler(object sender, MyEventArgs args);

 

 

 

--预览版,整理中

C# 事件