2013-05-27 60 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 { 


    } 

不,我喜欢这样的一类,但它可能在某些情况下帮助