Czy w wyliczeniach używasz liczby pojedynczej czy mnogiej? Myślę, że najlepiej jest stosować liczbę mnogą w deklaracji
enum Weekdays
{
Monday,
Tuesday,
Wednesday,
Thursday,
Friday,
Saturday,
Sunday
}
... ale wydaje mi się, że ma to większy sens w przypadku liczby pojedynczej przy użyciu typu, np
Weekday firstDayOfWeek = Weekday.Monday;
Czytałem gdzieś zalecenie, aby używać liczby pojedynczej z regularnymi wyliczeniami i liczby mnogiej z flagami, ale chciałbym usłyszeć więcej zalet i wad.
coding-style
enumeration
Jan Aagaard
źródło
źródło
Odpowiedzi:
Tutaj jest prosto od Microsoftu:
http://msdn.microsoft.com/en-us/library/4x252001(VS.71).aspx
źródło
Jedno zalecenie pochodzi z Wytycznych dotyczących projektowania .NET Framework , strony 59-60:
źródło
W .NET Framework, większość „normalnych” teksty stałe (np
DayOfWeek
) mają osobliwe nazwy i teksty stałe flagi (npStringSplitOptions
,BindingFlags
) mają nazwy w liczbie mnogiej. Ma to sens, ponieważ wartość wyliczenia flagi może reprezentować wiele elementów, ale w przypadku wyliczenia niebędącego flagą może reprezentować tylko jeden element.źródło
Tak. Jeśli przeżyjesz mentalne doświadczenie implementacji wyliczeń jako klas, to fakt, że użyjesz pojedynczej nazwy dla typu, powinien ujawnić, że ma sens używanie pojedynczych nazw dla takich wyliczeń. Na przykład,
...
Kto woli liczbę mnogą w wyliczeniach, czy mógłbyś to nazwać
struct Weekdays
?źródło
Ogólnie uważam, że definicja wyliczenia jest definicją typu, a wartości wyliczenia są różnymi wartościami, jakie może mieć typ; dlatego otrzymuje pojedynczą nazwę:
źródło
Firma Microsoft zaleca używanie pojedynczej nazwy dla wyliczeń, chyba że używa
Flags
atrybutu. Jak zaczerpnięto z książki Framework Design Guidelines, nie należy dodawać sufiksów do nazw typów wyliczeń z wyliczeniami, flagami itp., A także nie należy poprzedzać wartości wyliczenia skrótem lub akronimem, jak było to powszechne w przypadku wyliczeń w języku VB w tamtych czasach.źródło
Jest to subiektywne i nie ma znaczenia, czego używasz, o ile jesteś konsekwentny (osobiście używam liczby pojedynczej, ponieważ jest to przeniesienie z moich konwencji Sql)
źródło
Podobnie jak konwencja C # / Microsoft, wyliczenia w Javie powinny być pojedyncze: http://docs.oracle.com/javase/tutorial/java/javaOO/enum.html
źródło