CA1717:只有 FlagsAttribute 列舉應該使用複數名稱
型別名稱 |
OnlyFlagsEnumsShouldHavePluralNames |
CheckId |
CA1717 |
分類 |
Microsoft.Naming |
中斷變更 |
中斷 |
原因
外部可見列舉型別 (Enumeration) 的名稱以複數詞結尾,而且該列舉型別並未以 System.FlagsAttribute 屬性 (Attribute) 標記。
規則描述
依照命名規範的要求,列舉型別的複數名稱代表可以同時指定多個列舉值。 FlagsAttribute 會告知編譯器 (Compiler) 應該將列舉視為位元欄位 (Bit Field),並允許在列舉上執行位元 (Bitwise) 運算。
如果一次只能指定列舉列別的一個值,列舉型別的名稱應該是單數詞。 例如,定義該星期之天數的列舉型別可能適用於可以指定不只一天的應用程式。 這個列舉型別應該有 FlagsAttribute,而其名稱可能是 'Days'。 只能指定一天的類似列舉型別不會有這個屬性,而且名稱可能是 'Day'。
命名慣例會為針對 Common Language Runtime 的程式庫提供通用的外觀。 如此可縮短學習新軟體程式庫的時間,並讓客戶深信程式庫是由學有專長的人員以不斷開發的 Managed 程式碼開發而成。
如何修正違規
將列舉型別的名稱變成單數詞,或加入 FlagsAttribute。
隱藏警告的時機
如果名稱以單數詞結尾,則您可以放心地隱藏這項規則的警告。
相關規則
CA1027:必須以 FlagsAttribute 標記列舉
CA2217:不要以 FlagsAttribute 標記列舉