2017-10-20 129 views
1

我见过几个几乎类似的问题,但不完全是我要去的地方。是否有可能在泛型中有可选类型?

假设:

class MyBaseClass 
{ 
} 

我也有:

class MyClass<T> : MyBaseClass 
{ 
    void SomeFunc(T t1, T t2) 
    { 
    } 
} 

通常T1和T2应该是同一类型。但是,我遇到了,他们是不具优势的情况下,所以我需要一个:

class MyClass<T1, T2> : MyBaseClass 
{ 
} 

是否有可能只是有T1/T2版本,并以某种方式纪念T2作为,除非其指定的默认= T1的?

现在我有2个独立的课程......只是想知道是否有任何合成糖将它们合并为一个?

回答

7

您可以从两个参数的类派生的一个参数MyClass<T>

class MyBaseClass { 
} 

class MyClass<T1,T2> : MyBaseClass { 
    void SomeFunc(T1 t1, T2 t2) { 
    } 
} 

class MyClass<T> : MyClass<T,T> { 
} 
+0

呀,但我仍然有2班。我想没有办法像MyClass 这样做:)...显然这不合法,但这就是我要去的...... – SledgeHammer

相关问题