今天,我在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