为什么获胜';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

为什么获胜';t此命名空间命名约定适用于我的枚举

尝试将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;