Enum EventType = {Click, Jump, Etc};
而不是像这样访问它:
EventType.Jump
如果没有“EventType”,有没有办法这样做。前缀?
Jump
答案 0 :(得分:5)
不,但如果你真的想要,你可以在你的课堂上使用本地参考:
class A
{
private EventType Jump = EventType.Jump;
if(actionEvent.Type == Jump)......
}
答案 1 :(得分:1)
其实没有。在C ++中,这实际上是一个长期的痛苦,因为在C ++ 11(没有解决方法)之前不可能使用范围的枚举
对于C#,你不能这样做,因为这可能会引入名称冲突,例如:
Enum EventType1 = {Click, Jump, Etc};
Enum EventType2 = {Click, Jump, Etc};
现在应该使用哪个Jump
?
答案 2 :(得分:1)
简答:否。您不能在使用EnumType.
而不是Enum
您可以定义const int Jump = 1
,然后相应地编码,但
为什么你想要这样的东西?
考虑使用enums
而不是const,它将提高可读性。
答案 3 :(得分:1)
正如其他答案所述,你不能在C#中省略枚举前缀,但是,如果目标是防止必须输入长枚举名称(尽管intellisense解决了这么多),或者保留更短的代码,你可以通过在顶部的using子句中放置别名来使用替代方法。 (虽然这只在特定班级内有效) e.g。
using s = SomeLongEnumerationNameYouDontWantToSee;
...
if(foo == s.Bar) ..
或现实世界的枚举:
using ds = System.Drawing.Drawing2D.DashStyle;
...
ds.Solid