最佳答案
我在 C # 中遇到了美丽的 Func<T1, T2, T3, T4, T5, T6, T7, T8, T9, T10, T11, T12, T13, T14, T15, T16, TResult>
代表。NET 4.5.我假设16是一个任意的停止位置(什么方法有超过16个参数?)但是它让我想到: 有没有可能在 C # 中指定一个泛型类型可以有任意数量的类型参数?以类似的方式,params 关键字 for 方法允许一个方法的任意数量的参数。就像这样:
public class MyInfiniteGenericType<params T[]> { ... }
然后在类中通过枚举类型参数或使用 T[index]
访问类型参数,方法与 params
允许在方法中使用的方法相同。
我个人从来没有使用过这个,但是 Func 委托将是使用它的一个完美地方。将不需要16种不同类型的 Func!
所以我的问题是,这能在 C # 和 如果不是,这是一个愚蠢的想法中以任何方式实现吗?