我已经看到了几个几乎类似的问题,但不完全是我在这里的目的。
假设:
class MyBaseClass
{
}
我也有:
class MyClass<T> : MyBaseClass
{
void SomeFunc(T t1, T t2)
{
}
}
通常t1和t2应该是相同的类型。但是,我碰到了一个他们不是的边缘情况,所以我需要一个:
class MyClass<T1, T2> : MyBaseClass
{
}
是否可以只使用T1 / T2版本并以某种方式将T2标记为=默认为T1,除非指定?
现在我有2个单独的课程...只是想知道是否有任何合成糖将它们组合成一个?
答案 0 :(得分:7)
您可以从双参数类派生单参数MyClass<T>
:
class MyBaseClass {
}
class MyClass<T1,T2> : MyBaseClass {
void SomeFunc(T1 t1, T2 t2) {
}
}
class MyClass<T> : MyClass<T,T> {
}