我这里有问题。我有类库,即 ClLib ,并且包含以下 8 cs 文件。
此外,每个8类文件中还包含一个方法。例如,
public class 1E1:Express
{
public int subtractNumExp1E1(int firstNum, int secNum)
{
return firstNum - secNum;
}
}
1E1:Express用于显示父类(Express)和子类(1E1)之间的关系。
我还在Visual Studio中创建了一个Windows应用程序,我需要创建一个像“使用ClLib.Express.1E1”这样的指令。我该怎么办呢?我陷入这种情况,当我想将1E1的命名空间从“命名空间ClLib”更改为“命名空间ClLib.Express.1E1”时。发生错误,因为命名空间ClLib已经包含Express的一个定义。
对所有愿意帮助我的善良灵魂提前表示感谢和赞赏:)
答案 0 :(得分:2)
您不能拥有同名的类型和命名空间(“CILib.Express”)。
如果您想要CILib.Express
命名空间,最简单选项是移动/重命名CILib.Express
类型。
但是,您也可以使用嵌套类型。例如,您可以:
namespace CILib {
public class Express {
public class SomeType {}
}
}
如果需要关注单独的文件:
文件1:
namespace CILib {
public partial class Express {
// "Express" code
}
}
文件2:
namespace CILib {
public partial class Express {
public class SomeType {
// "SomeType" code
}
}
}
但是,using
指令仅与命名空间有关;我认为你不能拥有using CILib.Express
,因为这不是命名空间。
答案 1 :(得分:1)
在这种情况下,您只需删除命名空间ClLib
,并确保只有ClLib.Express.1E1
的一个副本
P / S:您确定正确的命名空间是ClLib.Express.1E1
吗? 1E1
是一个cs文件,它通常是一个类。所以你不必写using ClLib.Express
,这就足够了。
答案 2 :(得分:0)
我认为命名空间和基类之间存在混淆。
命名空间:ClLib.Express 类:公共类1E1:快递
将您的基类重命名为ExpressBase以区分它。
如果需要引用命名空间:
使用ClLib.Express
希望我理解你的项目结构!