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# を使用して多重継承することはできません。ただし、これはinterfaceを使用して実現できます。

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# では違法) から派生するのではなく、2 つのインターフェイス (定義上抽象) から派生します。

于 2013-03-15T12:27:12.400 に答える
1

同時に 2 つのクラスから派生することはできません。代わりにインターフェイスを使用する必要があります。

public interface IFirstInterface
{
}
public interface ISecondInterface
{
}

public abstract class Proj : IFirstInterface, ISecondInterface
{
}

から継承するクラスはProj、両方のインターフェイスで定義されたすべてのメソッドとプロパティを実装する必要があります。

于 2013-03-15T12:27:36.450 に答える