CA1714:旗標列舉應該使用複數名稱
型別名稱 |
FlagsEnumsShouldHavePluralNames |
CheckId |
CA1714 |
分類 |
Microsoft.Naming |
中斷變更 |
中斷 |
原因
公用的 (Public) 列舉型別 (Enumeration) 具有 System.FlagsAttribute,而且其名稱不能以 's' 做結尾。
規則描述
以 FlagsAttribute 標記的型別擁有複數形的名稱,因為這個屬性表示可以指定一個以上的值。 例如,定義該星期之天數的列舉型別可能適用於可以指定不只一天的應用程式。 這個列舉型別應該有 FlagsAttribute,而其名稱可能是 'Days'。 只能指定一天的類似列舉型別不會有這個屬性,而且名稱可能是 'Day'。
命名慣例會為針對 Common Language Runtime 的程式庫提供通用的外觀。 如此可縮短新軟體程式庫的學習過程,並讓客戶深信程式庫是由學有專長的人員以不斷開發的 Managed 程式碼開發而成。
如何修正違規
請將列舉型別的名稱變成複數詞,而如果不可同時指定多個列舉值,則請移除 FlagsAttribute 屬性。
隱藏警告的時機
如果名稱是複數詞但不是以 's' 結尾,您可以放心地隱藏違規。 例如,如果前述的多天列舉名稱為 'DaysOfTheWeek',雖然這違反了規則的邏輯,但卻不是它的意圖。 這種違規應該隱藏起來。
相關規則
CA1027:必須以 FlagsAttribute 標記列舉
CA2217:不要以 FlagsAttribute 標記列舉