回答
我會堅持字符串常量,因爲它們很簡單,不需要任何反射來獲取值。
那裏的方法使用反射來提取字符串值。如果你正在做一些關鍵性能的事情,不惜一切代價避免這種情況......如果你想要速度的話,常量是要走的路。
更重要的是,使用該方法會嚴重傷害編譯器優化器,因爲每個「常量」現在都變成了「方法調用」。
這就是我所猜測的。儘管我猜想它是獨一無二的。 – slandau 2011-05-19 20:47:14
它可能是獨一無二的,但是當你開發時你必須利用的是'專業'和'對比'。唯一性既不是。 – 2011-05-19 20:51:20
這在很大程度上取決於您正在存儲什麼類型的字符串。
如果是向用戶顯示的文本,那麼您不應該首先使用常量。只讀字段更好,資源也更好。
我在建議的解決方案中看到的主要缺點是它會非常不直觀:當我看到字符串常量或字段的用法時,我立即知道發生了什麼。如果我看到SomeEnum.SameValue.GetStringValue()
,我會認爲它幾乎可以做ToString()
會做的事情,而不是一些有趣的事情。
此外,使用這樣的反射會慢得多,但這對你並不重要。
- 1. Java枚舉與字符串常量
- 2. 字符串枚舉
- 3. 作爲常量或字符串比較枚舉
- 4. 爲什麼使用字符串常量與枚舉常量?
- 5. T-SQL枚舉數字或字符串
- 6. 多個枚舉字符串
- 7. 字符串到枚舉C++
- 8. C++ Bitflaged枚舉字符串
- 9. NoSql:枚舉vs字符串
- 10. 枚舉到字符串C++
- 11. 枚舉字符串匹配
- 12. 缺失值或枚舉空字符串
- 13. 字符串值的符號常量的.NET枚舉
- 14. 枚舉的返回列表從字符串常量枚舉的名字值
- 15. 解析字符串作爲枚舉
- 16. 無法爲字符串枚舉
- 17. 枚舉數組爲字符串
- 18. 將字符串轉換爲枚舉?
- 19. Rails枚舉符號與字符串
- 20. 打字稿,枚舉和字符串
- 21. 如何枚舉字符串資源文件中的字符串?
- 22. 字符串轉換爲枚舉的枚舉名
- 23. 如何使用枚舉來定義一堆字符串常量
- 24. 如何在常量字符串中包含枚舉值?
- 25. 根據傳入的字符串值返回枚舉常量
- 26. C:將常量字符串轉換爲常規字符串
- 27. 字符串常量
- 28. 如何將字符串項目放在一個枚舉枚舉的枚舉映射的字符串?
- 29. 解析字符串枚舉類型
- 30. EL枚舉字符串處理
你的字符串常量是通過一些序列或集相互關聯的嗎?如果沒有,請不要使用枚舉。 – BoltClock 2011-05-19 20:45:05
他們可以暗示這種關係。整數的枚舉不需要依次相關。 – slandau 2011-05-19 20:46:04
如果您使用.net 4,請使用已存在的描述,請勿重新發明輪子:) – 2011-05-19 20:47:17