2017-10-20 194 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

相關問題