Souvent, je vois des déclarations d'énumération de drapeau qui utilisent des valeurs hexadécimales. Par exemple:
[Flags]
public enum MyEnum
{
None = 0x0,
Flag1 = 0x1,
Flag2 = 0x2,
Flag3 = 0x4,
Flag4 = 0x8,
Flag5 = 0x10
}
Lorsque je déclare une énumération, je la déclare généralement comme ceci:
[Flags]
public enum MyEnum
{
None = 0,
Flag1 = 1,
Flag2 = 2,
Flag3 = 4,
Flag4 = 8,
Flag5 = 16
}
Y a-t-il une raison ou une justification pour laquelle certaines personnes choisissent d'écrire la valeur en hexadécimal plutôt qu'en décimal? À mon avis, il est plus facile de se tromper lors de l'utilisation de valeurs hexadécimales et d'écrire accidentellement à la Flag5 = 0x16
place de Flag5 = 0x10
.
Flag1 | Flag2
est 3 et 3 ne correspond à aucune valeur de domaine de MyEnum
.
10
plutôt que0x10
si vous utilisiez des nombres décimaux? D'autant que ce sont des nombres binaires avec lesquels nous avons affaire, et hex est trivialement convertible vers / depuis le binaire?0x111
est beaucoup moins ennuyeux à traduire dans sa tête que273
...