在C#中对通用参数使用“ params”关键字
Func<T1, T2, T3, T4, T5, T6, T7, T8, T9, T10, T11, T12, T13, T14, T15, T16,
TResult>今天,我在C#.NET
4.5中遇到了漂亮的代表。我以为16是一个任意的停止位置(哪些方法具有16个以上的参数?),但是这使我想到:
以类似于方法的params关键字为方法允许任意数量的参数的方式。像这样:
public class MyInfiniteGenericType<params T[]> { ... }
然后,您可以在类内部的位置通过枚举它们或使用T[index]
与方法params
内部相同的方式来访问类型参数。
我从来没有亲自使用过它,但是Func代表将是一个使用它的理想场所。不需要16种不同类型的Func!
所以我的问题是,这可以在C#中以任何方式完成, 吗?
回答:
C#中是否可以指定泛型类型可以具有任意数量的类型参数?
不,恐怕C#没有这样的东西。
从根本上讲Func<T>
,Func<T1, T2>
就CLR而言,它们是完全不相关的类型,没有什么params
可以指定多个类型参数了。
至于它的效用:我可以看到它有用的情况,但是我怀疑它们很少见,意味着该功能没有超过“收益/成本”的门槛。(请注意,几乎肯定也需要更改CLR。)
以上是 在C#中对通用参数使用“ params”关键字 的全部内容, 来源链接: utcz.com/qa/413818.html