创建密封通用委托的具体版本

本文关键字:版本 密封 创建 | 更新日期: 2023-09-27 18:18:51

我想做以下几件事:

public class ObjectReadEventHandler : EventHandler<ObjectReadEventArgs> { };

我不能这样做,因为事件处理程序<>是密封的。有谁知道我可以用来制作 EventHandler<> 的具体版本的解决方法?我需要这个,因为我怀疑 Python.NET 无法将事件处理程序<>作为方法参数进行处理。

更新:

从理论上讲,我想这样做:

ObjectReadEventHandler = EventHandler<ObjectReadEventArgs>

以便以后我可以这样做:

public void AddObjectHandler(string ID, ObjectReadEventHandler handler)

我想这样做的原因是因为我怀疑它会为我在 Python.NET 中使用此库时遇到的问题提供解决方法。

创建密封通用委托的具体版本

public delegate void ObjectReadEventHandler(
    object sender, ObjectReadEventArgs args);

这就是您声明委托的方式。请参阅 MSDN

关于更新:委托是可转换的,如果它们具有相同的签名(参数和返回值 + 一些差异是正确的(,您当然可以将一个分配给另一个。委托本质上是从MulticastDelegate派生的,类似于方法+对象列表。