这是我在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.CPSEnums”,我可以将其简单地称为GoalType.STRATEGIC。
我需要做些什么来识别CPSEnums.GoalType.STRATEGIC?
奇怪的是,CPSLibrary类库中的其他类可以将它作为CPSEnums.GoalType.STRATEGIC引用。
奖金问题:在这个例子中,“CPSEnums”是否有技术术语? “容器”或类似的东西?或者它只是命名空间的一部分而没有单独的术语?
TIA
答案 0 :(得分:4)
尝试将您的using语句更改为此...
using CPSEnums = CPSLibrary.CPSEnums;
这应该允许你以你想要的方式引用它......
/* ... farther down the page ... */
proj.Goal == CPSEnums.GoalType.STRATEGIC;
答案 1 :(得分:0)
因为你的命名空间名称是CPSLibrary.CPSEnums
,所以你甚至可以这样写:
using CPSLibrary.CPSEnums;
....
proj.Goal == GoalType.STRATEGIC; //NO NAMESPACE NAME
当您编写using CPSLibrary
时,您将引用已定义的命名空间的“父”命名空间。这完全有效。但要访问您的枚举类型,您需要指定其 namepsace,其名称空间为:CPSLibrary.CPSEnums
答案 2 :(得分:0)
试试这个:
namespace CPSLibrary
{
public static class CPSEnums
{
public enum GoalType
{
STRATEGIC = 1,
TACTICAL = 2
}
}
}
var x = CPSEnums.GoalType.STRATEGIC;