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 = 0x16statt geschrieben werden Flag5 = 0x10.
Flag1 | Flag2ist 3 und 3 entspricht keinem Domänenwert von MyEnum.
10als0x10wenn 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?0x111Es ist weit weniger ärgerlich, im Kopf zu übersetzen als273...