Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/csharp/331.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/0/backbone.js/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
C# 一般委托的例子?_C#_Generics_Generic Programming - Fatal编程技术网

C# 一般委托的例子?

C# 一般委托的例子?,c#,generics,generic-programming,C#,Generics,Generic Programming,泛型类可以用泛型委托声明,如下所示,但这是不幸的元数据。我找不到完整的例子: public abstract class Expression { public static Expression<TDelegate> Lambda<TDelegate>(Expression body, bool tailCall, IEnumerable<ParameterExpression> parameters); } 公共抽象类表达式 { 公共静态表达式Lambd

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

public abstract class Expression
{
public static Expression<TDelegate> Lambda<TDelegate>(Expression body, bool tailCall, IEnumerable<ParameterExpression> parameters);
}
公共抽象类表达式
{
公共静态表达式Lambda(表达式体、bool tailCall、IEnumerable参数);
}

在这里,TDelegate是一个函数。您能否编写一个使用泛型委托的泛型类示例?我找不到这样的示例。

在约束委托类型时,泛型参数没有多大帮助。除非您希望使用泛型参数传递委托类型,而不是使用常规的
typeof
关键字或
Object。GetType
方法:

public void DoStuff<TDelegate>()
// vs.
public void DoStuff(Type delegateType);
public void DoStuff<T>(Func<T> func) where T : IWhatever 
{
}