Я часто вижу объявления перечисления флагов, в которых используются шестнадцатеричные значения. Например:
[Flags]
public enum MyEnum
{
None = 0x0,
Flag1 = 0x1,
Flag2 = 0x2,
Flag3 = 0x4,
Flag4 = 0x8,
Flag5 = 0x10
}
Когда я объявляю перечисление, я обычно объявляю его так:
[Flags]
public enum MyEnum
{
None = 0,
Flag1 = 1,
Flag2 = 2,
Flag3 = 4,
Flag4 = 8,
Flag5 = 16
}
Есть ли причина или объяснение, почему некоторые люди предпочитают записывать значение в шестнадцатеричном, а не в десятичном формате? На мой взгляд, проще запутаться при использовании шестнадцатеричных значений и случайно написать Flag5 = 0x16
вместо Flag5 = 0x10
.
Flag1 | Flag2
3, а 3 не соответствует ни одному значению домена MyEnum
.
10
а не0x10
если вы будете использовать десятичные числа? В частности, потому что мы имеем дело с двоичными числами, а шестнадцатеричный тривиально можно преобразовать в / из двоичного?0x111
переводить в голове гораздо менее неприятно, чем273
...