[coding-style] 열거를위한 단수 또는 복수?

열거에 단수 또는 복수를 사용합니까? 나는 선언에서 복수형이 가장 합리적이라고 생각합니다.

enum Weekdays
{
    Monday,
    Tuesday,
    Wednesday,
    Thursday,
    Friday,
    Saturday,
    Sunday
}

…하지만 유형을 사용할 때 단수를 사용하는 것이 더 합리적이라고 생각합니다.

Weekday firstDayOfWeek = Weekday.Monday;

나는 단수형 whith 정규 열거 형 및 플래그와 함께 복수형을 사용하는 권장 사항을 읽었지만 더 많은 장단점을 듣고 싶습니다.



답변

다음은 Microsoft에서 직접 제공 한 것입니다.

http://msdn.microsoft.com/en-us/library/4×252001(VS.71).aspx

대부분의 Enum 유형에는 단수 이름을 사용하지만 비트 필드 인 Enum 유형에는 복수 이름을 사용합니다.


답변

한 가지 권장 사항은 .NET Framework 디자인 지침 ( 59-60 페이지) 에서 제공됩니다 .

그 값은 비트 필드 않는 한, 열거에 대한 단일 유형 이름을 사용합니다.

public enum ConsoleColor {
  Black,
  Blue,
  Cyan,
  ...

값으로 비트 필드 열거에 대한 복수의 타입 이름을 사용, 또한 플래그 열거했다.

[Flags]
public enum ConsoleModifiers {
  Alt,
  Control,
  Shift
}


답변

.NET Framework에서 대부분의 “일반”열거 형 (예 🙂 DayOfWeek에는 단수 이름이 있고 플래그 열거 형 (예 : StringSplitOptions, BindingFlags)에는 복수 이름이 있습니다. 플래그 열거 형의 값은 여러 항목을 나타낼 수 있지만 플래그가 아닌 열거 형의 경우 단일 항목 만 나타낼 수 있습니다.


답변

일반적으로 열거 형 정의는 유형 정의로 간주되며 열거 형의 값은 유형이 가질 수있는 다른 값입니다. 따라서 단일 이름을 얻습니다.
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)
       ...
}

열거 형에서 복수형을 선호하는 사람을 위해 이름을 지정 struct Weekdays하시겠습니까?


답변

일반적으로 열거 형 정의는 유형 정의로 간주되며 열거 형의 값은 유형이 가질 수있는 다른 값입니다. 따라서 단일 이름을 얻습니다.

enum Weekday { SUNDAY, MONDAY, TUESDAY, WEDNESDAY, THURSDAY, FRIDAY, SATURDAY };

enum CoffeeSize { SMALL, MEDIUM, LARGE };


답변

Microsoft 는 특성을 사용하지 않는 한 열거 형에 단일 이름을 사용하는 것이 좋습니다Flags . 그리고 Framework Design Guidelines 책에서 가져온 것처럼 열거 형 이름에 Enum, Flags 등을 접두사로 붙이면 안되며, 예전의 VB 열거 형에서 흔히 볼 수 있었던 약어 나 두문자어를 열거 형 값에 접두사로 붙이면 안됩니다.


답변

일관성이있는 한 주관적이고 무엇을 사용하든 상관 없습니다.