获取Enum而无需输入其类名?

时间:2012-10-20 14:52:41

标签: c# enums

我注意到在C#中,当我有一个Enum时,请说:

class ClassObject {
   public static Enum EventType = {Click, Jump, Etc};
}

当我必须访问它时,我必须通过它的主要类,它非常详细。例如:

ClassObject.EventType.Click

我希望我能以更短的方式访问它,说: EventType.Click,允许我这样做。

所以我认为我可以尝试创建一个单独的类并从Enum扩展它:

class EventType : Enum {
   Click, Jump, Etc;
}

但是,我收到了这个语法错误。

实际上,为此目的创建另一个单独的课程有点麻烦,我甚至不知道这是不是一个好习惯。但理想情况下,我只想缩短名称,并且可能避免在访问枚举之前必须输入类名。这可能吗?

2 个答案:

答案 0 :(得分:9)

你可以将枚举放在同一深度的类中,它不必是类成员

namespace Test
{
    public enum EventType
    {
        Click,
        Jump,
        Etc
    };

    class ClassObject { }
}

答案 1 :(得分:4)

您正在类范围内定义Enum。这就是你必须通过课堂访问它的原因。在课堂外定义,并从您喜欢的任何地方进行访问。 Nested Enum and classes are not directly accessible.

public static Enum EventType = {Click, Jump, Etc};

class ClassObject {

}