2012-10-20 61 views
4

我注意到,在C#中,當我有一個枚舉,說:獲取Enum而無需輸入其類名稱?

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

當我要訪問它,我必須去通過它的主類,這是非常冗長。對於如:

ClassObject.EventType.Click 

我希望我能在更短的方式訪問它,說: EventType.Click,讓我明白了。

所以我想我可以嘗試創建一個單獨的類和枚舉擴展它:

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

然而,這我得到一個語法錯誤這一點。

實際上,爲了這個目的創建另一個單獨的類是有點麻煩的,我甚至不知道這是否是一種好的做法。但理想情況下,我只想縮短名稱,並可能避免在訪問枚舉之前必須鍵入類名。這可能嗎?

+0

你爲什麼在一個類中封裝枚舉?在命名空間中做這件事怎麼樣? **就像獵人回答:) –

+1

要明確:你不能從Enum繼承一個類 –

+0

不是枚舉類型?它們沒有被定義爲靜態的。 –

回答

9

你可以把枚舉在類的相同深度,它並沒有成爲一個類成員

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

    class ClassObject { } 
} 
+0

我不相信我以前曾經將枚舉標記爲static。究竟是做什麼的,如果枚舉在類內部或外部被刪除,它是否會產生影響? – devuxer

+0

是的,我不知道爲什麼它是'靜態',我只是複製/粘貼。 – hunter

+0

沒有理由將一個'enum'聲明爲static。 '枚舉'是類型 – hunter

4

你定義在類範圍的枚舉。這就是爲什麼你必須通過課程來訪問它。在課堂外定義它並從每個你喜歡的地方訪問。 Nested Enum and classes are not directly accessible.

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

class ClassObject { 

}