今天,我在C#.NET 4.5中遇到了美丽的Func<T1, T2, T3, T4, T5, T6, T7, T8, T9, T10, T11, T12, T13, T14, T15, T16, TResult>
代表。我假设16是一个任意停止的地方(哪些方法有16个以上的参数?)但它让我思考:是否可以在C#中指定一个泛型类型可以有任意数量的类型参数?,方法的params关键字允许方法的任意数量的参数。事情是这样的:在C#中对通用参数使用“params”关键字
public class MyInfiniteGenericType<params T[]> { ... }
所在班级里面然后你可以通过它们计数或以相同的方式,params
允许方法中使用T[index]
访问类型参数。
我从来没有用过这个人,但Func代表将是一个完美的地方使用它。将不需要16种不同类型的Func!
所以我的问题是,这可以在C#中以任何方式完成,并且如果不是这是一个愚蠢的想法?
在SO上的其他地方讨论:http://stackoverflow.com/a/4046525/63225 – sblom 2013-03-14 18:22:24