为什么对 EventHandler 没有约束?

2023-11-23

我只是偶然发现(当编译一些我认为不会编译的东西时)EventHandler 是not限制为 System.EventArgs 类型。

这是内联文档:

#region Assembly mscorlib.dll, v4.0.0.0
// C:\Program Files (x86)\Reference Assemblies\Microsoft\Framework\.NETFramework\v4.5\mscorlib.dll
#endregion

namespace System
{
    // Summary:
    //     Represents the method that will handle an event.
    //
    // Parameters:
    //   sender:
    //     The source of the event.
    //
    //   e:
    //     An System.EventArgs that contains the event data.
    //
    // Type parameters:
    //   TEventArgs:
    //     The type of the event data generated by the event.
    [Serializable]
    public delegate void EventHandler<TEventArgs>(object sender, TEventArgs e);
}

这是文档和实现之间的不匹配吗?

我问是因为我很好奇。这根本不是抱怨。


.net 4.5 中删除了类型约束。

这是 .net 4.5 签名。http://msdn.microsoft.com/en-us/library/db0etb8x%28v=vs.110%29.aspx

[SerializableAttribute]
public delegate void EventHandler<TEventArgs>(
    Object sender,
    TEventArgs e
)

这是 .net 4.0 签名。http://msdn.microsoft.com/en-us/library/db0etb8x%28v=vs.100%29.aspx

[SerializableAttribute]
public delegate void EventHandler<TEventArgs>(
    Object sender,
    TEventArgs e
)
where TEventArgs : EventArgs
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

为什么对 EventHandler 没有约束? 的相关文章

随机推荐

  • 我可以优化 Mercurial 克隆吗?

    我的 Mercurial 克隆变得非常慢 可能是由于磁盘碎片所致 有没有办法优化它 最明显的方法是创建一个新克隆 然后将我的 MQ 保存的捆绑包 hgrc 等复制到新克隆并删除旧克隆 但似乎有人以前遇到过这个问题并进行了扩展来做到这一点 如
  • 如何使用 std::rel_ops 自动提供比较运算符? [复制]

    这个问题在这里已经有答案了 如何获得运营商 gt gt lt and from and
  • 如何在 Python 中检测文件是否为二进制(非文本)?

    在 Python 中如何判断文件是否是二进制 非文本 我正在 Python 中搜索大量文件 并不断在二进制文件中获取匹配项 这使得输出看起来非常混乱 我知道我可以使用grep I 但我对数据的处理超出了 grep 允许的范围 过去 我只会搜
  • “此链接已停用,因为它未嵌入 JSF 表单中。”

    当我使用以下命令链接时
  • 比较悬空指针合法吗?

    比较悬空指针合法吗 int p q int a p a int b q b std cout lt lt p q lt lt n 注意两者如何p and q指向已经消失的物体 这合法吗 介绍 第一个问题是使用价值是否合法p at all A
  • 如何在 Java 中合并两个 XML

    我正在尝试用 Java 合并两个 xml 我正在使用 STaX API 来编写这些 XML 我在互联网上搜索了很多关于如何合并 xml 的信息 但没有一个看起来像C 有没有使用 StAX 在 Java 中执行此操作的直接方法 xslt 可能
  • 您如何组织版本控制存储库?

    首先 我知道这一点 您将如何为内部软件项目组织 Subversion 存储库 接下来 实际问题 我的团队正在重组我们的存储库 我正在寻找有关如何组织它的提示 在本例中为 SVN 这就是我们的想法 我们有一个存储库 多个项目和多个 svn e
  • 如何表示数据库中的继承? [关闭]

    Closed 这个问题是基于意见的 目前不接受答案 我正在考虑如何在 SQL Server 数据库中表示复杂的结构 考虑一个需要存储一系列对象的详细信息的应用程序 这些对象共享一些属性 但有许多其他不常见的属性 例如 商业保险套餐可能在同一
  • SQL Server 字段被截断

    好的 我正在使用 SQL Server 2008 并且有一个类型的表字段VARCHAR MAX 问题是 当使用保存信息时Hibernate 内容VARCHAR MAX 字段被截断 我在应用程序服务器或数据库服务器上没有看到任何错误消息 该字
  • 访问 R 中列表列表的同名列表元素

    我经常遇到需要为不同变量创建许多相似模型的情况 通常我将它们转储到列表中 这是虚拟代码的示例 modlist lt lapply 1 10 function l data lt data frame Y rnorm 10 X rnorm 1
  • DataAnnotations 的 FileExtensions 属性在 MVC 中不起作用

    我正在尝试使用 MVC 中的 HTML FileUpload 控件上传文件 我想验证文件只接受特定的扩展名 我尝试过使用 DataAnnotations 命名空间的 FileExtensions 属性 但它不起作用 请参阅下面的代码 pub
  • openCSV 没有读取我的整个文件

    我有一个 Java 应用程序 我正在使用 openCSV 来读取文件 非常大 然后 我将第四列 如果有影响的话 最终会添加一列或两列 放入 HashSet 中 并将其输出到一个新文件中 这一切似乎工作正常 但我发现它只读取文件的一部分 27
  • 如何使用唯一复合键

    我有一张桌子 Item ItemName ItemSize Price Notes 我正在制作 ItemName ItemSize 的复合键来唯一标识项目 现在 在阅读了 stackoverflow 上建议使用 UNIQUE 的一些答案后
  • 我什么时候会选择 AesCryptoServiceProvider 而不是 AesManaged 或 RijndaelManaged?

    我认为区别因素是 AesCryptoServiceProvider 符合 FIPS 标准 AesManaged 是跨平台的 需要 NET 3 0 RijndaelManaged 在 NET 2 0 上运行 需要限制块大小 是这样吗 Aes托
  • 字段值必须唯一,除非为 NULL

    我正在使用 SQL Server 2005 我有一个必须包含唯一值或 NULL 值的字段 我认为我应该用以下任一方式强制执行此操作CHECK CONSTRAINT or a TRIGGER for INSERT UPDATE 与触发器相比
  • 无法验证 iOS 应用程序(已拥有有效证书)

    当切换到 Yosemite 时 我对 Mac 进行了全新安装 但现在将 iOS 提交到商店时遇到问题 当我验证我的存档时 我不断收到 您的帐户已经拥有有效的 iOS 分发证书 我已尝试从会员中心重命名并重新下载我的证书 但这不起作用 一个非
  • 为什么 (list 'quote 'x) 计算结果为 'x 而不是 ('x) 或 (quote 'x)?

    我正在尝试学习 LISP 并正在查看一个代码示例 其中使用了类似于以下代码的内容 列出 引文 5 这在 REPL 中评估为 5 我预计它的评估结果为 5 或 quote 5 我正在 CLISP REPL 中尝试这个 任何帮助 将不胜感激 读
  • 获取 CheckBoxList 项目值

    我有一个用数据填充的 CheckBoxList 当我尝试从列表中检索已检查的项目时 我只能获取项目序号 而无法获取该值 我读过您可以使用 Items i Value 但是当我尝试这样做时 我收到一条错误 指出没有扩展方法 值 这是我用来尝试
  • 在 Prolog 中更快地实现口头算术

    我已经做了一个工作概括口头算术Prolog 中的求解器 但速度太慢 仅运行简单的表达式 S EN D M O R E M O N E Y 就需要 8 分钟 有人可以帮助我让它运行得更快吗 verbalArithmetic List Word
  • 为什么对 EventHandler 没有约束?

    我只是偶然发现 当编译一些我认为不会编译的东西时 EventHandler 是not限制为 System EventArgs 类型 这是内联文档 region Assembly mscorlib dll v4 0 0 0 C Program