1

我想做以下事情:

public class ObjectReadEventHandler : EventHandler<ObjectReadEventArgs> { };

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

更新:

基本上,我想这样做:

ObjectReadEventHandler = EventHandler<ObjectReadEventArgs>

这样以后我可以这样做:

public void AddObjectHandler(string ID, ObjectReadEventHandler handler)

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

4

1 回答 1

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

这就是您声明代表的方式。见 MSDN

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

于 2014-08-20T08:52:16.277 回答