Apakah Anda menggunakan tunggal atau jamak untuk pencacahan? Saya pikir paling masuk akal dengan bentuk jamak dalam deklarasi
enum Weekdays
{
Monday,
Tuesday,
Wednesday,
Thursday,
Friday,
Saturday,
Sunday
}
... tapi menurut saya lebih masuk akal dengan bentuk tunggal saat menggunakan tipe, misalnya
Weekday firstDayOfWeek = Weekday.Monday;
Saya membaca rekomendasi di suatu tempat untuk menggunakan tunggal dengan enum reguler dan jamak dengan bendera, tetapi saya ingin mendengar lebih banyak pro dan kontra.
coding-style
enumeration
Jan Aagaard
sumber
sumber
Jawaban:
Ini dia langsung dari Microsoft:
http://msdn.microsoft.com/en-us/library/4x252001(VS.71).aspx
sumber
Salah satu rekomendasi berasal dari .NET Framework Design Guidelines , halaman 59-60:
sumber
Dalam .NET Framework, yang paling "normal" enum (misalnya
DayOfWeek
) memiliki nama tunggal dan enum bendera (misalnyaStringSplitOptions
,BindingFlags
) memiliki nama jamak. Masuk akal, karena nilai enum bendera dapat mewakili beberapa item tetapi untuk enum non-bendera, itu hanya dapat mewakili satu item.sumber
Iya. Jika Anda melakukan pengalaman mental dalam mengimplementasikan enum sebagai kelas, maka fakta bahwa Anda akan menggunakan nama tunggal untuk tipe tersebut akan mengungkapkan bahwa masuk akal untuk menggunakan nama tunggal untuk enum semacam itu. Misalnya,
...
Untuk siapa yang lebih suka bentuk jamak dalam enum, apakah Anda akan menyebutkannya
struct Weekdays
?sumber
Secara umum, saya menganggap definisi enum sebagai definisi tipe, dengan nilai enum menjadi nilai berbeda yang dapat dimiliki tipe; oleh karena itu ia mendapat nama tunggal:
sumber
Microsoft menganjurkan menggunakan nama tunggal untuk pencacahan kecuali jika menggunakan
Flags
atribut. Dan seperti yang diambil dari buku Panduan Desain Kerangka, Anda tidak boleh memberikan akhiran nama jenis pencacahan dengan Enum, Bendera, dll. Dan Anda tidak boleh mengawali nilai pencacahan dengan singkatan atau akronim seperti yang umum dengan pencacahan VB di masa lalu.sumber
Ini subjektif dan tidak masalah apa yang Anda gunakan, selama Anda konsisten (secara pribadi saya menggunakan tunggal sebagai bawaan dari konvensi Sql saya)
sumber
Seperti konvensi C # / Microsoft, enum di Java harus tunggal: http://docs.oracle.com/javase/tutorial/java/javaOO/enum.html
sumber