为什么无法将 "Using static" 功能与私有枚举一起使用?还有其他选择吗?
Why is it not possible to use "Using static" feature with private enum? Is there any alternative?
我有这个 class,我在其中使用了私有枚举。我想使用 C# 6 "Using static" 功能,如下所示:
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 的保护级别。如果我将访问修饰符更改为 internal 或 public 它会起作用。我想知道这是否根本不可能,如果是,为什么这不可能?
如果那是可能的,并且您在同一个文件中还有一些其他 class,那么您导入的符号将不会从那个 class 中可见。
那会令人困惑;这可能就是它不起作用的原因。
我有这个 class,我在其中使用了私有枚举。我想使用 C# 6 "Using static" 功能,如下所示:
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 的保护级别。如果我将访问修饰符更改为 internal 或 public 它会起作用。我想知道这是否根本不可能,如果是,为什么这不可能?
如果那是可能的,并且您在同一个文件中还有一些其他 class,那么您导入的符号将不会从那个 class 中可见。
那会令人困惑;这可能就是它不起作用的原因。