Oft sehe ich Flag-Enum-Deklarationen, die hexadezimale Werte verwenden. Beispielsweise:
[Flags]
public enum MyEnum
{
None = 0x0,
Flag1 = 0x1,
Flag2 = 0x2,
Flag3 = 0x4,
Flag4 = 0x8,
Flag5 = 0x10
}
Wenn ich eine Aufzählung deklariere, erkläre ich sie normalerweise so:
[Flags]
public enum MyEnum
{
None = 0,
Flag1 = 1,
Flag2 = 2,
Flag3 = 4,
Flag4 = 8,
Flag5 = 16
}
Gibt es einen Grund oder eine Begründung dafür, warum manche Leute den Wert lieber hexadezimal als dezimal schreiben? So wie ich es sehe, ist es einfacher, verwirrt zu werden, wenn Hex-Werte verwendet werden und versehentlich Flag5 = 0x16
statt geschrieben werden Flag5 = 0x10
.
Flag1 | Flag2
ist 3 und 3 entspricht keinem Domänenwert von MyEnum
.
10
als0x10
wenn Sie Dezimalzahlen verwenden würden? Zumal es sich um Binärzahlen handelt, mit denen wir es zu tun haben, und hex trivial in / von Binärzahlen konvertierbar ist?0x111
Es ist weit weniger ärgerlich, im Kopf zu übersetzen als273
...