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

  • 相关阅读:
    NTP on FreeBSD 12.1
    Set proxy server on FreeBSD 12.1
    win32 disk imager使用后u盘容量恢复
    How to install Google Chrome Browser on Kali Linux
    Set NTP Service and timezone on Kali Linux
    Set static IP address and DNS on FreeBSD
    github博客标题显示不了可能是标题包含 特殊符号比如 : (冒号)
    server certificate verification failed. CAfile: none CRLfile: none
    删除文件和目录(彻底的)
    如何在Curl中使用Socks5代理
  • 原文地址:https://www.cnblogs.com/philzhou/p/1967728.html
Copyright © 2011-2022 走看看