2

这是 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

4

3 回答 3

4

尝试将您的 using 语句更改为此...

using CPSEnums = CPSLibrary.CPSEnums; 

这应该允许您以您想要的方式引用它...

/*  ... farther down the page ... */
proj.Goal == CPSEnums.GoalType.STRATEGIC;
于 2013-07-25T21:13:38.650 回答
0

因为你的命名空间名称是CPSLibrary.CPSEnums,所以你甚至可以这样写:

using CPSLibrary.CPSEnums;
....
proj.Goal == GoalType.STRATEGIC; //NO NAMESPACE NAME

当你写的时候using CPSLibrary,你指的是你定义的命名空间的“父”命名空间。这是完全有效的。但是要访问你的枚举类型,你需要指定的命名空间,它的命名空间是:CPSLibrary.CPSEnums

于 2013-07-25T21:10:48.240 回答
0

试试这个:

namespace CPSLibrary
{
    public static class CPSEnums
    {
        public enum GoalType
        {
            STRATEGIC = 1,
            TACTICAL = 2
        }
    }
}


var x = CPSEnums.GoalType.STRATEGIC;
于 2013-07-25T21:17:28.347 回答