C#命名空间中的枚举与类中的枚举有什么区别

Ser*_*mur 5 c# enums namespaces class difference

我有一个关于枚举的问题,代码如下:

namespace space
{
    public enum MyEnums
    {
        Enum1,Enum2,...
    }
}

namespace space
{
    public class MyClass
    {
        public enum MyEnums
        {
            Enum1,Enum2,...
        }
    }
}
Run Code Online (Sandbox Code Playgroud)

有什么区别以及如何使用它们?

D S*_*ley 6

从语法上讲,唯一的区别是您将使用包含类作为枚举类型的开头:

MyClass.MyEnums.Enum1 
Run Code Online (Sandbox Code Playgroud)

与只是

MyEnums.Enum1 
Run Code Online (Sandbox Code Playgroud)

(在这两种情况下,都假定命名空间被using指令覆盖)

但是,在类中包含它也可以让您以不同的方式应用可访问性 - 您可以拥有一个private仅在该类中可用的枚举,而命名空间中的枚举必须是publicinternal