2009-09-24 77 views
36

是否有可能在運行時獲取枚舉定義的項目總數?獲取枚舉項的總數

雖然它和this one幾乎是一樣的問題,但這個問題涉及到C#,據我所知,在Objective-C中提供的方法將不起作用。

回答

69

enum是一個普通的舊C類型,因此它不提供動態運行時信息。

一種替代方法是使用一個枚舉的最後一個元素以指示計數:

typedef enum { 
    Red, 
    Green, 
    Blue, 
    numColors 
} Color; 
+13

適合連續值,完全失敗用於'的typedef枚舉{紅色=爲0xFF0000,綠色= 0x00ff00,藍色= 0x0000ff, numColors}顏色;'。 – 2009-09-24 02:39:40

+0

像馬克說的那樣,這對他的例子來說將是一個大問題,達倫提供的替代方案非常適合我的需求。謝謝。 – 2009-09-24 15:19:36

+0

此外,這吸吮靜態代碼分析紅旗 – 2013-03-23 19:44:26