通用代表的示例?

时间:2015-09-13 09:39:31

标签: c# generics generic-programming

泛型类可以使用泛型委托声明,如下所示,但这是不幸的元数据。我找不到完整的例子:

public abstract class Expression
{
public static Expression<TDelegate> Lambda<TDelegate>(Expression body, bool tailCall, IEnumerable<ParameterExpression> parameters);
}

在这里TDelegate是一个Func&lt;&gt ;.你能写一个使用泛型委托的泛型类示例吗?我找不到那样的例子。

1 个答案:

答案 0 :(得分:0)

在约束委托类型时,通用参数不会有太大帮助。除非您想使用通用参数而不是使用常规typeof关键字或Object.GetType方法传递委托类型,否则没有实际用例:

public void DoStuff<TDelegate>()
// vs.
public void DoStuff(Type delegateType);

代表不是课程,他们不支持继承和类和接口可用的其他功能。您可以做的是约束委托的通用参数

例如,您希望Func<T>约束TIWhatever

public void DoStuff<T>(Func<T> func) where T : IWhatever 
{
}