我可以访问枚举而不必键入枚举类型吗

本文关键字:枚举 类型 不必 访问 我可以 | 更新日期: 2023-09-27 18:01:01

Enum EventType = {Click, Jump, Etc};

而不是像这样访问它:

EventType.Jump

如果没有"EventType."前缀,有什么方法可以做到这一点吗?

Jump

我可以访问枚举而不必键入枚举类型吗

没有,但如果你真的想要,你可以在类中使用本地引用:

class A
{
   private EventType Jump = EventType.Jump;

   if(actionEvent.Type == Jump)......
}

正如其他答案所述,您不能省略C#中的枚举前缀,但是,如果目标是防止键入长枚举名称(尽管intellisense解决了这一问题(或保留较短的代码,则可以通过在using子句中的顶部放置别名来使用其他选项。(尽管这仅在特定类内有效(例如

using s = SomeLongEnumerationNameYouDontWantToSee;
...
if(foo == s.Bar) ..

或者一个真实世界的枚举:

using ds = System.Drawing.Drawing2D.DashStyle;
...
ds.Solid

实际上不是。在C++中,这实际上是一种长期的颈部疼痛,因为在C++11(没有解决方案(之前不可能进行范围内的枚举

对于C#,您不能这样做,因为这可能会引入名称冲突,例如:

Enum EventType1 = {Click, Jump, Etc};
Enum EventType2 = {Click, Jump, Etc};

现在应该使用哪个Jump

简短回答:否。不能将枚举成员与使用EnumType. 一起使用

您可以定义const int Jump = 1,然后相应地进行编码,而不是Enum但是

你为什么想要这样的东西

考虑使用enums而不是const,这将提高可读性。