c# - 为什么不能将 "Using static"功能与私有(private)枚举一起使用?还有其他选择吗?

标签 c# enums access-modifiers c#-6.0

我有一个使用私有(private)枚举的类。我想使用 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 的保护级别所致。如果我将访问修饰符更改为内部或公共(public),它就可以工作。我想知道这是否根本不可能,如果是的话,为什么这是不可能的?

最佳答案

如果可能的话,并且您在同一文件中有其他一些类,则您导入的符号在该类中将不可见。

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

关于c# - 为什么不能将 "Using static"功能与私有(private)枚举一起使用?还有其他选择吗?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/45223740/

相关文章:

Java:Java5枚举自定义序列化

C#:访问修饰符使方法调用不同

python - 修改数组numpy中的实际元素值

java - 哪些是 Java 注解中字段和方法的默认修饰符?

c# - 随机获取 Renci.SshNet.SftpClient.Connect 抛出 SshConnectionException

c# - 在单独的线程中启动 WPF 窗口

java - 如何将字节转换为枚举?

c# - 如何刷新内容页面上的项目?

c# - ASP.NET 生成的输出不受 JQuery/Javascript 的影响

c++ - 无法理解 C++ 中的枚举,它们实际上是什么?