2013-05-27 108 views
1

這聽起來像一個相當,我敢說,愚蠢的問題,請多多包涵:多個基類的一個派生類,繼承C#

如果我有兩個基類的類:

public partial MyClass : Base1, Base2 { 


} 

要調用的基礎1的構造我這樣做:

public MyClass() : base(myParamForBase1); 

但我需要調用第二個基類來獲得這樣的基礎初值:

base.OnInit(e); 

我當然不能這樣做,因爲C#認爲我指的是Base1而不是Base2,我該如何解決這個問題?換句話說,我該如何引用Base2?

您的幫助是真正的讚賞!

+3

你不能有多個基類。您可以擁有一個基類和無限接口 –

+0

對多重繼承的需求總是會導致設計不良的類結構。發佈你需要的例子。我確信有一種方法來構建它,以便不需要多重繼承(反正這不存在) –

+0

@HighCore當然,我現在正在轉換相信它或者不是一個MVC項目到一個標準的.NET項目爲SharePoint。我可以發佈我的情況,如果你能幫助我, – anpatel

回答

5

C#不支持多類繼承。您只能實現多個接口,並從一個基類繼承(擴展)。

+0

我害怕這將是答案。我多次看到這一點,但只是想抱着希望 – anpatel

+1

@MyName,你可能想看看[鑽石問題](http://en.wikipedia.org/wiki/Multiple_inheritance#The_diamond_problem)爲什麼這個將永遠不會在C#中工作。 – gunr2171

+0

@MyName但是,您可以使用級聯繼承。 '孫子'繼承'子',從'母親'親屬。 –

0

你可以做的是,讓從第一底座繼承

像這樣

public Base2 : Base1 { 


    } 
    public MyClass : Base2 { 


    } 

不,我喜歡這樣的一類,但它可能在某些情況下幫助