NET问答: 枚举 和 常量 在使用时该怎么抉择?
生活随笔
收集整理的這篇文章主要介紹了
NET问答: 枚举 和 常量 在使用时该怎么抉择?
小編覺得挺不錯的,現在分享給大家,幫大家做個參考.
咨詢區
Draco:
我了解enum有一段時間了,不過我發現它和 常量 特別像,我現在特別想知道什么時候該用 enum 而不是 const,反之亦然,以及使用 enum 的一些優點。
回答區
Andrew Barrett:
如果你想定義一組值,可優先選擇 enum,顏色值就是一個很好的例子。
public?enum?Colour {White,Red,Blue }或者你想定義一些復合值,比如下面這樣。
[FlagsAttribute] enum?DistributedChannel {None?=?0,Transacted?=?1,Queued?=?2,Encrypted?=?4,Persisted?=?16,FaultTolerant?=?Transacted?|?Queued?|?Persisted }常量一般都是一個值,比如說 PI。
Robert MacLean:
常量 是一個定義好之后不可再修改的語言特性,而 枚舉 只是一個特定類型。
const 可以定義成任何類型,但 enum 類型就是一個 enum。
enum 常出現在有一組可選項,并且想提高代碼閱讀性的地方,比如:trace級別的:0,1,2 或 error,warning,info。
enum 還可以用于位運算,比如:FontStyle.Bold | FontStyle.Italic 。
點評區
兩位大佬已經總結的比較全面了,我在實踐中將那些單一的不變值定義為const,比如一些redis的key:RedisKey.RpcList or Redis.ChannelList , enum 一般還是在一些組合值中使用,用于提高代碼可讀性。
總結
以上是生活随笔為你收集整理的NET问答: 枚举 和 常量 在使用时该怎么抉择?的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: 技术管理中的手段——奖励和惩罚
- 下一篇: 使用IQueryable扩展方法实现复杂