Seringkali saya melihat deklarasi enum bendera yang menggunakan nilai heksadesimal. Sebagai contoh:
[Flags]
public enum MyEnum
{
None = 0x0,
Flag1 = 0x1,
Flag2 = 0x2,
Flag3 = 0x4,
Flag4 = 0x8,
Flag5 = 0x10
}
Saat saya mendeklarasikan enum, saya biasanya mendeklarasikannya seperti ini:
[Flags]
public enum MyEnum
{
None = 0,
Flag1 = 1,
Flag2 = 2,
Flag3 = 4,
Flag4 = 8,
Flag5 = 16
}
Adakah alasan atau alasan mengapa beberapa orang memilih untuk menulis nilai dalam heksadesimal daripada desimal? Cara saya melihatnya, lebih mudah menjadi bingung saat menggunakan nilai hex dan tidak sengaja menulis Flag5 = 0x16daripada Flag5 = 0x10.
Flag1 | Flag23, dan 3 tidak sesuai dengan nilai domain apa pun MyEnum.
10daripada0x10jika Anda menggunakan angka desimal? Terutama karena ini adalah bilangan biner yang kita hadapi, dan hex dapat dikonversi secara mudah ke / dari biner?0x111jauh lebih tidak menyebalkan untuk menerjemahkan di kepala seseorang daripada273...