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

时间:2014-08-20 08:43:48

标签: c# python.net

我想做以下事情:

public class ObjectReadEventHandler : EventHandler<ObjectReadEventArgs> { };

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

更新:

基本上,我想这样做:

ObjectReadEventHandler = EventHandler<ObjectReadEventArgs>

以后我可以这样做:

public void AddObjectHandler(string ID, ObjectReadEventHandler handler)

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

1 个答案:

答案 0 :(得分:1)

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

这是你宣布代表的方式。 See MSDN

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