在c#中模拟可变模板 - 代码日志

在c#中模拟可变模板

有没有一个熟悉的方法来模拟c#中的可变模板功能?

例如,我想编写一个方法,它使用一个任意一组参数的lambda。这是伪代码我想要的:

void MyMethod<T1,T2,...,TReturn>(Fun<T1,T2, ..., TReturn> f)
{

}

谢谢

C#泛型与C模板不一样。 C模板扩展了compiletime,并可以递归地使用可变模板参数。 C模板扩展实际上是图灵完成,所以在模板中可以做的理论上没有理论上的限制。

直接编译C#泛型,为运行时使用的类型提供一个空的“占位符”。

要接受一个lambda,需要任意数量的参数,你必须生成大量的重载(通过代码生成器)或者接受一个LambdaExpression。

http://stackoverflow.com/questions/6844890/simulate-variadic-templates-in-c-sharp

本站文章除注明转载外,均为本站原创或编译
转载请明显位置注明出处:在c#中模拟可变模板