不能访问另一个命名空间中的继承类

本文关键字:继承 命名空间 访问 另一个 不能 | 更新日期: 2023-09-27 18:16:36

在命名空间中有一个基类:

namespace n1
{
 public class c1
 {
 }
}

同一命名空间中继承自c1的另一个类:

namespace n1
{
 public class c2:c1
 {
 }
}

我想在另一个命名空间n2中创建c2的实例,因为n1是一个库,n2是一个Windows窗体项目,我想使用库的类。我添加了一个参考n1。但是当我尝试:

using n1;    
namespace n2
{
 public class c3
 {
  public c1 c1Instance=new c1();
  public c2 c2Instance=new c2();
 }
}

我得到这个错误信息:

找不到类型或命名空间名称'c2'

我没有得到这个错误与c1

继承的类是私有的吗?

不能访问另一个命名空间中的继承类

您需要引用包含c2的项目或dll

您只需要从列表参考中删除引用的dll(其中包含提到的类型'c2')并再次引用库(无论是作为dll还是项目,如果它链接到解决方案)。

它是在实践中发现的,没有找到原因。然而,最常见的来源是直接引用放置在其他项目的车间文件夹中的dll(例如x86'Releasebin'Debug)。因此,在我们的开发工作中,我们经常更改Configuration和/或Platform多次,最后列表References可能有对dll库的引用,这些库不在预期的编译位置。在这种情况下,更好的解决方案是将我们的dll保存在名为"libs"的单独文件夹中并引用它,或者如果每次编译主项目时编译其他项目没有问题,则将库引用为 project