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 = 0x16place de Flag5 = 0x10.
Flag1 | Flag2est 3 et 3 ne correspond à aucune valeur de domaine de MyEnum.
10plutôt que0x10si 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?0x111est beaucoup moins ennuyeux à traduire dans sa tête que273...