2

我有应用程序结构 -

public abstract class a 
{
}
//defined in a.dll
public abstract class b
{
}
//defined in b.dll

//Above 2 DLL reference added in main project where I want to derive both of this abstract classee like

public abstract class proj : a, b
{
}

我能够推导出其中任何一个,但不能同时推导出两者。所以请指导我丢失的东西或我所做的错误编码。

4

4 回答 4

11

您不能使用 C# 进行多重继承。但是,您可以通过使用接口来实现这一点。

public interface Ia 
{

}

public interface Ib 
{

}

public abstract class MainProject : Ia, Ib  
{

}

C# 接口只允许方法、属性、事件和索引器的签名。您必须在proj (MainProgram) 类中定义这些的实现。

于 2013-03-15T12:27:12.383 回答
2
public abstract class proj : a, b

这是做不到的。C# 不允许多重继承。

于 2013-03-15T12:26:59.507 回答
1

而不是从多个抽象类派生(这在 C# 中是非法的),而是从两个接口(根据定义是抽象的)派生。

于 2013-03-15T12:27:12.400 回答
1

您不能同时从两个类派生。您应该改用接口。

public interface IFirstInterface
{
}
public interface ISecondInterface
{
}

public abstract class Proj : IFirstInterface, ISecondInterface
{
}

现在继承自的类Proj仍然需要实现两个接口中定义的所有方法和属性。

于 2013-03-15T12:27:36.450 回答