我需要编写一堆采用 1..N 泛型类型参数的方法,例如:
int Foo<T1>();
int Foo<T1,T2>();
int Foo<T1,T2,T3>();
...
int Foo<T1,T2,T3...TN>();
在里面Foo()
我想为每种类型做一些事情,例如
int Foo<T1,T2,T3>() {
this.data = new byte[3]; // allocate 1 array slot per type
}
有什么方法可以参数化它,这样我就不会编辑 的每个变体Foo()
,类似于:
int Foo<T1,T2,T3>() {
this.data = new byte[_NUMBER_OF_GENERIC_PARAMETERS];
}
理想情况下,我还希望能够获得类型的数组或集合:
int Foo<T1,T2,T3>() {
this.data = new byte[_NUMBER_OF_GENERIC_PARAMETERS];
// can do this
Type [] types = new Type[] { T1, T2, T3 };
// but would rather do this
Type [] types = _ARRAY_OR_COLLECTION_OF_THE_GENERIC_PARAMETERS;
}