C# 为什么不能使用;使用静态;具有私有枚举的功能?还有别的选择吗?
我有一个使用私有枚举的类。我想使用C#6的“使用静态”功能,如下所示: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;
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你说得对,我的坏蛋——我没有仔细阅读你的问题。