如何使用约束'委托'

时间:2018-05-24 14:59:42

标签: c#

C#现在允许在泛型中使用委托约束。当我试图学习新功能时,我无法用一种实用的方式来使用它。正如其他人多年来一直要求这个功能一样,我显然忽略了这一点。

public class Test<TDelegate> where TDelegate : Delegate
{
    readonly TDelegate fd; // no way to call this 
    public event TD Evt; // not even legal
}

一个类如何使用作为委托的泛型参数做任何有用的事情?

1 个答案:

答案 0 :(得分:0)

您所要做的就是:

public static void Foo<T>(T t) where T : System.Delegate
{
    t.DynamicInvoke();
}

出于某种原因,正常Invoke()不是可以使用的有效方法。