Muchas veces veo declaraciones de enumeración de bandera que usan valores hexadecimales. Por ejemplo:
[Flags]
public enum MyEnum
{
None = 0x0,
Flag1 = 0x1,
Flag2 = 0x2,
Flag3 = 0x4,
Flag4 = 0x8,
Flag5 = 0x10
}
Cuando declaro una enumeración, generalmente la declaro así:
[Flags]
public enum MyEnum
{
None = 0,
Flag1 = 1,
Flag2 = 2,
Flag3 = 4,
Flag4 = 8,
Flag5 = 16
}
¿Hay alguna razón o razón por la cual algunas personas eligen escribir el valor en hexadecimal en lugar de decimal? A mi modo de ver, es más fácil confundirse cuando se utilizan valores hexadecimales y escribir accidentalmente en Flag5 = 0x16
lugar de Flag5 = 0x10
.
Flag1 | Flag2
es 3 y 3 no corresponde a ningún valor de dominio de MyEnum
.
10
lugar de0x10
usar números decimales? Particularmente ya que estos son números binarios con los que estamos tratando, y ¿hexadecimal es trivialmente convertible a / desde binario?0x111
es mucho menos molesto traducir en la cabeza que273
...