我Func<T1, T2, T3, T4, T5, T6, T7, T8, T9, T10, T11, T12, T13, T14, T15, T16, TResult>今天在C#.NET 4.5中遇到了这位美丽的代表.我假设16是一个任意停止的地方(哪些方法有超过16个参数?)但它让我思考:在C#中是否可以指定泛型类型可以有任意数量的类型参数?类似于方法的params关键字允许方法的任意数量的参数.像这样的东西:
public class MyInfiniteGenericType<params T[]> { ... }
Run Code Online (Sandbox Code Playgroud)
然后,在类中,您可以通过枚举它们或使用允许在方法中使用T[index]的相同方式来访问类型参数params.
我个人从来没有使用它,但Func代表将是一个使用它的完美场所.不需要16种不同类型的Func!
所以我的问题是,这可以在C#中以任何方式完成,如果不是,这是一个愚蠢的想法吗?