为什么获胜';t此命名空间命名约定适用于我的枚举
本文关键字:命名约定 命名空间 适用于 我的 枚举 获胜 为什么 | 更新日期: 2023-09-27 18:25:08
这是存在于CPSLibrary类库中的Enums.cs文件:
namespace CPSLibrary.CPSEnums
{
public enum GoalType
{
STRATEGIC = 1,
TACTICAL = 2
}
}
在引用CPSLibrary的web应用程序中的代码隐藏文件中,我正在执行以下操作:
using CPSLibrary;
/* ... farther down the page ... */
proj.Goal == CPSLibrary.CPSEnums.GoalType.STRATEGIC;
这是可行的,但如果我尝试像CPSEnums.GoalType.STRATEGIC那样引用它,它就不会了。此外,如果我添加"使用CPSLibary.CSPEnums",那么我可以简单地将其引用为GoalType.STRATEGIC.
我需要做什么才能识别CPSEnums.GoalType.STRATEGIC?
奇怪的是,其他具有CPSLibrary类库的类可以将其引用为CPSEnums.GoalType.STRATEGIC。
附加问题:在这个例子中,"CPSEnums"有一个技术术语吗?"集装箱"之类的?或者它只是命名空间的一部分,没有单独的术语?
TIA
尝试将using语句更改为。。。
using CPSEnums = CPSLibrary.CPSEnums;
这应该允许你以你想要的方式引用它。。。
/* ... farther down the page ... */
proj.Goal == CPSEnums.GoalType.STRATEGIC;
因为您的名称空间名称是CPSLibrary.CPSEnums
,所以您甚至可以这样写:
using CPSLibrary.CPSEnums;
....
proj.Goal == GoalType.STRATEGIC; //NO NAMESPACE NAME
当您编写using CPSLibrary
时,您引用了您定义的名称空间的"父"名称空间。这是完全正确的。但是,要访问您的枚举类型,您需要指定的namepsace,并且其命名空间为:CPSLibrary.CPSEnums
试试这个:
namespace CPSLibrary
{
public static class CPSEnums
{
public enum GoalType
{
STRATEGIC = 1,
TACTICAL = 2
}
}
}
var x = CPSEnums.GoalType.STRATEGIC;