英語で読む

次の方法で共有


コンパイラ エラー CS0011

型 'type' で参照されているアセンブリ 'assembly' の基底クラスまたはインターフェイス 'class' が解決できません

/referenceを使用してファイルからインポートされたクラスが、あるクラスの派生クラスであるか、または見つからないインターフェイスを実装しています。 このエラーは、必要な DLL が /referenceを使用したコンパイル時にインクルードされていない場合に発生することがあります。

詳細については、[参照の追加] ダイアログ ボックスに関するページと C# コンパイラ オプションの「参照」を参照してください。

// CS0011_1.cs  
// compile with: /target:library  
  
public class Outer
{  
   public class B { }  
}  

2 つ目のファイルでは、前の例で作成した C クラスから派生した B クラスを定義する DLL を作成します。

// CS0011_2.cs  
// compile with: /target:library /reference:CS0011_1.dll  
// post-build command: del /f CS0011_1.dll  
public class C : Outer.B {}  

3 つ目のファイルでは、最初の手順で作成した DLL を置き換え、内部クラスである Bの定義を省略しています。

// CS0011_3.cs  
// compile with: /target:library /out:cs0011_1.dll  
public class Outer {}  

最後に、4 つ目のファイルで、2 番目の例で定義した C クラスを参照します。これは Bクラスから派生していますが、今回、これはありません。

次の例では CS0011 が生成されます。

// CS0011_4.cs  
// compile with: /reference:CS0011_1.dll /reference:CS0011_2.dll  
// CS0011 expected  
  
class M  
{  
   public static void Main()  
   {  
      C c = new C();  
   }  
}