Skip to content

Gendarme.Rules.Design.FlagsShouldNotDefineAZeroValueRule(2.10)

Sebastien Pouliot edited this page Jan 22, 2011 · 2 revisions

FlagsShouldNotDefineAZeroValueRule

Assembly: Gendarme.Rules.Design
Version: 2.10

Description

This rule ensures that enumerations decorated with the [System.Flags] attribute do not contain a 0 value. This value would not be usable with bitwise operators.

Examples

Bad example (using 0 for a normal value):

[Flags]
[Serializable]
enum Access {
    Read = 0,
    Write = 1
}

Bad example (using None):

[Flags]
[Serializable]
enum Access {
    // this is less severe since the name of the 0 value helps
    None = 0,
    Read = 1,
    Write = 2
}

Good example:

[Flags]
[Serializable]
enum Access {
    Read = 1,
    Write = 2
}
Clone this wiki locally