繁体   English   中英

无法访问另一个命名空间中的继承类?

[英]Can't access inherited class in another namespace?

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

namespace n1
{
 public class c1
 {
 }
}

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

namespace n1
{
 public class c2:c1
 {
 }
}

我想在另一个命名空间n2创建一个c2实例,因为n1是一个库,而n2是一个Windows Form项目,我想在这里使用库的类。 我添加了对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或项目)。

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

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM