我今天在 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 关键字允许方法使用任意数量的参数。像这样的东西:
public class MyInfiniteGenericType<params T[]> { ... }
在类内部,您可以通过枚举类型参数或以与方法内允许T[index]
的相同方式使用来访问类型参数。params
我个人从来没有用过这个,但是 Func 代表将是一个完美的地方使用它。不需要 16 种不同类型的 Func!
所以我的问题是,这可以在 C# 中以任何方式完成吗?如果不是,这是一个愚蠢的想法吗?