C# EventHandler和KeyEventHandler之间的公共祖先/接口?

C# EventHandler和KeyEventHandler之间的公共祖先/接口?,c#,inheritance,eventhandler,C#,Inheritance,Eventhandler,EventHandler和KeyEventHandler是否共享一个共同的祖先或接口?我看过文档,也许我只是错过了,但它们似乎完全不相交 假设它们之间没有这样的公共链接,那么存储许多EventHandler和KeyEventHandler集合的最佳方式是什么?KeyEventHandler和EventHandler都是委托。此代码适用于: public void DelegateTest() { var delList = new List<Delegate>();

EventHandler和KeyEventHandler是否共享一个共同的祖先或接口?我看过文档,也许我只是错过了,但它们似乎完全不相交


假设它们之间没有这样的公共链接,那么存储许多EventHandler和KeyEventHandler集合的最佳方式是什么?

KeyEventHandler和EventHandler都是委托。此代码适用于:

public void DelegateTest()
{
    var delList = new List<Delegate>();
    delList.Add(new KeyEventHandler(SomeFunction));
    delList.Add(new EventHandler(SomeFunction));
    foreach (var element in delList)
        element.DynamicInvoke(null, null);
}

public void SomeFunction(object sender, EventArgs e)
{
    System.Diagnostics.Debug.WriteLine("Got called!");
}
public void DelegateTest()
{
var delList=新列表();
Add(新的KeyEventHandler(SomeFunction));
Add(neweventhandler(SomeFunction));
foreach(delList中的var元素)
元素DynamicInvoke(null,null);
}
公共函数(对象发送方、事件参数)
{
System.Diagnostics.Debug.WriteLine(“被叫了!”);
}

调用
DelegateTest()
将在输出中写入两次“Got called!”。

代理不支持任何方法。谢谢!这就是我目前正在做的,我只是想确定没有更合适的方法。