的MSDN documentation爲Flag
屬性的電源標誌枚舉說,你應該:沒有兩個值
定義枚舉常數的兩個大國,也就是1,2,4,8, 等。這意味着組合枚舉 常量中的各個標誌不會重疊。
...當然,我總是試圖記住這樣做。然而,沒有任何強制執行,如果你只是創建一個枚舉的「基本」的方式像...
[Flags]
public enum BrokenEnum
{
None,
FirstOption,
SecondOption,
ThirdOption
}
...如預期不會做人。爲了解決這個問題,我正在尋找某種類型的靜態代碼分析(如FxCop),當我的代碼中存在像上面這樣的枚舉時,可以發出警告。我能找到的最接近的這種警告是'CA1008: Enums should have zero value' - 這對設計正確的枚舉標誌也很有幫助,但還不夠。
什麼是在我的代碼中查找錯誤設計的標誌枚舉的最佳方法?解決方案越自動化越好。
我想我不應該一直在思考靜態代碼分析的「盒子裏面」。像這樣的單元測試應該很容易,並且給我幾乎相同的最終結果。 –