2

プロジェクト A にインターフェース A があり、プロジェクト B にインターフェース A を実装するクラス B がある場合、プロジェクト B にはプロジェクト A への参照が必要です。

プロジェクト B:

public class B : A
{
    void A.MethodA()
    {
    }
}

ただし、プロジェクト C がクラス B をインターフェイス A として使用せずに使用する場合 (したがって、B のインスタンスで A のメソッドを呼び出したり、B のインスタンスを A にキャストしたりするコードはありません)、プロジェクト A を参照する必要があります。 B はインターフェイス A を明示的に実装します (上記のコード例のように)。

プロジェクト C:

public class C
{
    public C()
    {
       var b = new B(); 
    }
}

結果は次のとおりです。

型 'A' は、参照されていないアセンブリで定義されています。アセンブリ 'A, Version=0.0.0.0, Culture=neutral, PublicKeyToken=null' への参照を追加する必要があります。

何故ですか?

4

1 に答える 1