我可以访问枚举而不必键入枚举类型吗
本文关键字:枚举 类型 不必 访问 我可以 | 更新日期: 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,这将提高可读性。