当我们需要在C#中进行多重继承时,有哪些变通方法?

时间:2018-03-19 17:19:05

标签: c#

我在这里看到的所有类似问题都提到了多个接口继承。但是,我不确定MII如何解决这个问题。

让我们说,我有两个不同方法的库类(My_Class_1My_Class_2)。然后我想创建一个新类,可以使用这两个类'本地方法,如:

public class My_Application : My_Class_1, My_Class_2 {

     public My_Application(){
         method_from_Class1();
         smth_property_declared_in_My_Class_2 = "hello";
     }

}

然而,使用C#是不可能的。什么是灵活的解决方法,用其他类扩展/丰富类?在PHP中,这简直令人难以置信,我们可以在课堂上占据优势:

use example_trait_1;
use example_trait_2;

我宁愿不使用interfaces;在我看来,他们与解决这个问题无关。

P.S。我不想为这些类创建初始化对象。我希望它们是application类的原生部分。

1 个答案:

答案 0 :(得分:0)

正如其他人所提到的,这是不可能的(因为那不是继承的原因),但似乎一种解决方法是在继承Class2的类中包含类型为Class1的公共属性。

这也解决了"我现在正在看哪个班级的问题?"因为当你想要类型为Class1的东西时,你需要明确提到属性。

如果您需要先修改Class1,那么您只需创建一个先继承Class1的单独类,然后将该属性设为该新类型。