zoukankan      html  css  js  c++  java
  • EventHandler 泛型委托(转msdn)

    表示将处理事件的方法。泛型类型参数指定事件所生成的事件数据的类型。

    命名空间:System
    程序集:mscorlib(在 mscorlib.dll 中)

    [SerializableAttribute] 
    public delegate void EventHandler<TEventArgs> (
    	Object sender,
    	TEventArgs e
    ) where TEventArgs : EventArgs
    
    参数
    sender

    事件源。

    e

    包含事件数据的 EventArgs

    备注


    .NET Framework 中的事件模型基于具有事件委托,该委托将事件与事件处理程序连接。引发事件需要两个元素:

    • 引用向事件提供响应的方法的委托。

    • 保存事件数据的类。

    委托是一个定义签名的类型,即方法的返回值类型和参数列表类型。可以使用委托类型来声明一个变量,该变量可以引用与委托签名相同的所有方法。

    事件处理程序委托的标准签名定义一个没有返回值的方法,其第一个参数的类型为 Object,它引用引发事件的实例,第二个参数从 EventArgs 类型派生,它保存事件数据。如果事件不生成事件数据,则第二个参数只是 EventArgs 的一个实例。否则,第二个参数为从 EventArgs 派生的自定义类型,提供保存事件数据所需的全部字段或属性。

    EventHandler 是一种预定义委托,表示事件的事件处理程序方法,它与事件是否生成事件数据无关。如果事件不生成事件数据,则用 EventArgs 替代泛型类型参数;否则,提供自己的自定义事件数据类型并用该类型替代泛型类型参数。

    使用 EventHandler 的优点在于,如果事件生成事件数据,则无需编写自己的自定义委托代码。此外,.NET Framework 只需一个实现就能支持 EventHandler,这与替代泛型类型参数的事件数据类型无关。

    若要将事件与处理事件的方法关联,请向事件添加委托的实例。除非移除了该委托,否则每当发生该事件时就调用事件处理程序。

    有关事件处理程序委托的更多信息,请参见 事件和委托

    image

    输出结果:

    image

  • 相关阅读:
    用于展现图表的50种JavaScript库
    EditPlus常用正则表达式
    人工智能生成仿真人脸
    树莓派搭建SVN服务器
    JS三座大山再学习 ---- 异步和单线程
    JS三座大山再学习 ---- 作用域和闭包
    基于C#的MongoDB数据库开发应用(2)--MongoDB数据库的C#开发
    基于C#的MongoDB数据库开发应用(1)--MongoDB数据库的基础知识和使用
    大数据高效复制的处理案例分析总结
    基于DevExpress的Winform程序安装包的制作
  • 原文地址:https://www.cnblogs.com/philzhou/p/1967728.html
Copyright © 2011-2022 走看看