Kecuali Anda memiliki alasan kuat untuk menggunakan nilai mentah, Anda sebaiknya hanya menggunakan nilai implisit dan mereferensikannya Status.Active danStatus.Inactive .
Tangkapannya adalah Anda mungkin ingin menyimpan data dalam file datar atau DB, atau menggunakan file datar atau DB yang dibuat orang lain. Jika Anda membuatnya sendiri, buatlah penomorannya sesuai dengan kegunaan Enum.
Jika datanya bukan milik Anda, tentu saja Anda akan ingin menggunakan apa pun yang digunakan pengembang asli sebagai skema penomoran.
Jika Anda berencana menggunakan Enum sebagai satu set flag, ada konvensi sederhana yang layak untuk diikuti:
enum Example
{
None = 0,
Alpha = 1 << 0,
Beta = 1 << 1,
Gamma = 1 << 2,
Delta = 1 << 3,
Epsilon = 1 << 4,
All = ~0,
AlphaBeta = Alpha | Beta,
}
Nilai harus merupakan pangkat dua dan dapat diekspresikan menggunakan operasi bit-shift. None, jelas harus 0, tetapi Allkurang jelas -1. ~0adalah negasi biner dari 0dan menghasilkan angka yang setiap bitnya disetel 1, yang mewakili nilai-1 . Untuk tanda gabungan (sering digunakan untuk kenyamanan) nilai lain dapat digabungkan menggunakan bitwise atau operator |.