C# 为什么不能使用;使用静态;具有私有枚举的功能?还有别的选择吗?

C# 为什么不能使用;使用静态;具有私有枚举的功能?还有别的选择吗?,c#,enums,access-modifiers,c#-6.0,C#,Enums,Access Modifiers,C# 6.0,我有一个使用私有枚举的类。我想使用C#6的“使用静态”功能,如下所示: using static ConsoleForSimpleTests.Foo.MyEnum; namespace ConsoleForSimpleTests { public class Foo { private enum MyEnum { I, DonT, Want, This, To, Be, Public } private MyEnum value;

我有一个使用私有枚举的类。我想使用C#6的“使用静态”功能,如下所示:

using static ConsoleForSimpleTests.Foo.MyEnum;

namespace ConsoleForSimpleTests
{
    public class Foo
    {
        private enum MyEnum { I, DonT, Want, This, To, Be, Public }

        private MyEnum value;

        public void SomeMethod()
        {
            switch (value)
            {
                    case I:
                    case DonT:
                    case Want:
                    case This:
                    case To:
                    case Be:
                    case Public:
                        break;
            }
        }
    }
}

注意:这不会编译,我理解为什么,这是由于MyEnum的保护级别。如果我将访问修饰符更改为“内部”或“公共”,它将工作。我想知道的是,如果这是不可能的,那么为什么这是不可能的?

如果这是可能的,并且您在同一个文件中有其他类,那么您导入的符号将无法从该类中看到


这会令人困惑;这可能就是为什么这不起作用。

对不起,我显然跳过了问题的这一部分。@BJ Myers
使用static
确实适用于枚举值。这里的问题是访问修饰符。如果将私有枚举更改为内部枚举或公共枚举,请将其works@taquion你说得对,我的坏蛋——我没有仔细阅读你的问题。