枚舉變量,任何人都知道它總是默認爲第一個元素?枚舉變量的默認值是什麼
179
A
回答
287
它是枚舉的任何成員表示值0
。具體而言,從documentation:
一個
enum E
的默認值是由表達式(E)0
產生的值。
作爲一個例子,可採取下列枚舉:
enum E
{
Foo, Bar, Baz, Quux
}
在不覆蓋缺省值,打印default(E)
返回Foo
,因爲它是第一個存在的元素。
然而,並不總是該枚舉的0
由第一構件表示的情況下。例如,如果你這樣做:
enum F
{
// Give each element a custom value
Foo = 1, Bar = 2, Baz = 3, Quux = 0
}
印刷default(F)
會給你Quux
,不Foo
。
如果沒有在枚舉G
的元素對應於0
:
enum G
{
Foo = 1, Bar = 2, Baz = 3, Quux = 4
}
default(G)
返回字面上0
,儘管其類型保持爲G
(引通過上述文檔,流延到給定的枚舉類型)。
+1
謝謝,以及用char而不是int定義的枚舉呢? 例如枚舉狀態{Active ='A',Inactive ='I'} – 2015-04-24 16:17:20
7
我認爲依賴enum中值的順序是相當危險的,並且假設第一個總是默認值。如果您關心保護默認值,這將是一個很好的做法。
enum E
{
Foo = 0, Bar, Baz, Quux
}
否則,所需要的只是對命令的粗心重構,並且您有一個完全不同的默認值。
相關問題
- 1. Java中的枚舉類型實例變量的默認值是什麼?
- 2. 什麼是'success_url'變量的默認值
- 3. 枚舉默認值理解
- 4. Thrift默認枚舉值
- 5. 當枚舉值不在枚舉中時賦予枚舉的默認值
- 6. 爲什麼不是Byte默認的枚舉類型?
- 7. 枚舉類型的默認修飾符字段是什麼?
- 8. 什麼是枚舉的默認屬性類型編輯器?
- 9. @RequestParam默認值不接受枚舉值作爲默認值
- 10. 使用默認關鍵字的枚舉的默認值?
- 11. MVC - DropDownListFor枚舉 - 設置默認值
- 12. Phinx遷移 - 枚舉列與默認值
- 13. 打字稿枚舉默認值
- 14. 夫特 - 嵌套枚舉默認值
- 15. MVC 5 RadioButtonFor枚舉,默認的枚舉值零總是被選中?
- 16. C#:一個枚舉的默認值應該是None還是Unknown?
- 17. 什麼是PHImageRequestOptionsResizeMode默認值?
- 18. 爲變量賦值枚舉值
- 19. 爲什麼在此代碼中的枚舉開關需要默認值?
- 20. 什麼枚舉
- 21. 的JComboBox填補枚舉變量值
- 22. 枚舉變量的任意值
- 23. Yaml:變量的默認值
- 24. 爲什麼枚舉編譯爲常量而不是靜態值?
- 25. 如何枚舉用戶的默認組?
- 26. ASP.NET MVC中枚舉的默認modelbinding?
- 27. 重寫主義枚舉默認的getter
- 28. 如何使某個常量的默認增量值在枚舉中
- 29. 如何檢查枚舉變量是否分配有單個枚舉值?
- 30. 爲什麼枚舉包括可枚舉
需要默認枚舉的用例的一個注意事項是使用可爲空的變量。當收到null時,它可以在代碼的正確部分轉換爲默認值,並且在代碼的其餘部分(只傳遞null)中不需要知道該默認值。 – ErikE 2016-03-18 00:25:49