编译器错误 CS0011
未能解析程序集“assembly”中由类型“type”引用的基类或接口“class”
使用 /reference从类文件导入的类派生自找不到的类或实现了找不到的接口。 如果没有使用 /reference将所需 DLL 也包含在编译中,则可能出现这种情况。
有关详细信息,请参阅“添加引用”对话框和 References(C# 编译器选项)。
// CS0011_1.cs
// compile with: /target:library
public class Outer
{
public class B { }
}
第二个文件创建一个 DLL,它定义了派生自上一示例中所创建 C
类的 B
类。
// CS0011_2.cs
// compile with: /target:library /reference:CS0011_1.dll
// post-build command: del /f CS0011_1.dll
public class C : Outer.B {}
第三个文件替换第一步创建的 DLL,并忽略内部类 B
的定义。
// CS0011_3.cs
// compile with: /target:library /out:cs0011_1.dll
public class Outer {}
最后,第四个文件引用在第二个示例中定义的类 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();
}
}