Liczby pojedynczej czy mnogiej?
Czy używasz liczby pojedynczej lub mnogiej do wyliczeń? Myślę, że to ma sens z liczbą mnogą w deklaracji
enum Weekdays
{
Monday,
Tuesday,
Wednesday,
Thursday,
Friday,
Saturday,
Sunday
}
... ale myślę, że ma to większy sens w liczbie pojedynczej, gdy używa się typu, np.
Weekday firstDayOfWeek = Weekday.Monday;
Czytałem gdzieś zalecenie, aby używać liczby pojedynczej z regularnymi enumami i liczby mnogiej z flagami, ale chciałbym usłyszeć więcej za i przeciw.
8 answers
Tutaj jest prosto od Microsoftu:
Http://msdn.microsoft.com/en-us/library/4x252001 (VS. 71). aspx
Użyj pojedynczej nazwy dla większości Enum typy, ale używaj nazwy liczby mnogiej dla Enum typy, które są polami bitowymi.
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/doraprojects.net/template/agent.layouts/content.php on line 54
2009-08-26 16:32:52
Jedno zalecenie pochodzi z. NET Framework Design Guidelines , strona 59-60:
Do użyj pojedynczej nazwy typu do wyliczenia, chyba że jego wartości są bitowe pola.
public enum ConsoleColor { Black, Blue, Cyan, ...
Do użyj nazwy typu w liczbie mnogiej do wyliczenia z polami bitowymi jako wartościami, nazywanymi również flags enum.
[Flags] public enum ConsoleModifiers { Alt, Control, Shift }
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/doraprojects.net/template/agent.layouts/content.php on line 54
2009-08-26 16:30:45
W. NET Framework większość" normalnych " enum (np. DayOfWeek
) mA nazwy pojedyncze i znaczniki enum (np. StringSplitOptions
, BindingFlags
) mają imiona w liczbie mnogiej. Ma to sens, ponieważ wartość enum znacznika może reprezentować wiele elementów, ale dla enum znacznika nie może reprezentować tylko jednego elementu.
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/doraprojects.net/template/agent.layouts/content.php on line 54
2009-08-26 16:28:43
Microsoft zaleca używanie pojedynczej nazwy do wyliczeń, chyba że używa atrybutu Flags
. Jak wynika z podręcznika Framework Design Guidelines, nie należy dodawać nazw typów enumeracji z Enum, Flags, itp. i nie powinieneś dodawać wartości wyliczania za pomocą skrótu lub akronimu, jak to było powszechne w przypadku wyliczeń VB w tamtych czasach.
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/doraprojects.net/template/agent.layouts/content.php on line 54
2009-08-26 16:35:07
Tak. Jeśli robisz mentalne doświadczenie implementacji enum jako klas, to fakt, że użyłbyś pojedynczej nazwy dla rodzaju powinien ujawnić, że to sensowne jest używanie nazw pojedynczych dla takich enum . Np.,Ogólnie uważam definicję enum za definicję typu, z wartościami enum jest różnymi wartościami, które może mieć typ; dlatego otrzymuje pojedynczą nazwę:
enum Weekday { SUNDAY, MONDAY, TUESDAY, WEDNESDAY, THURSDAY, FRIDAY, SATURDAY };
enum CoffeeSize { SMALL, MEDIUM, LARGE };
struct Weekday {};
const Weekday SUNDAY;
const Weekday MONDAY;
const Weekday TUESDAY;
...
void func (Weekday *day)
{
if (day == &SUNDAY)
...
}
Kto woli liczby mnogie w enumach, możesz to nazwać struct Weekdays
?
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/doraprojects.net/template/agent.layouts/content.php on line 54
2011-11-16 10:57:50
Ogólnie uważam, że definicja enum jest definicją typu, A wartości enum są różnymi wartościami, jakie może mieć typ; dlatego otrzymuje on pojedynczą nazwę:
enum Weekday { SUNDAY, MONDAY, TUESDAY, WEDNESDAY, THURSDAY, FRIDAY, SATURDAY };
enum CoffeeSize { SMALL, MEDIUM, LARGE };
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/doraprojects.net/template/agent.layouts/content.php on line 54
2009-08-26 16:32:21
Podobnie jak Konwencja C#/Microsoft, enums w Javie powinien być pojedynczy: http://docs.oracle.com/javase/tutorial/java/javaOO/enum.html
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/doraprojects.net/template/agent.layouts/content.php on line 54
2017-09-17 22:15:19
To subiektywne i nie ma znaczenia, czego używasz, o ile jesteś spójny (osobiście używam liczby pojedynczej jako przeniesienia z moich konwencji Sql)
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/doraprojects.net/template/agent.layouts/content.php on line 54
2009-08-26 16:31:17