2011-11-01 3 views
15

가이드 라인은 그 값은 비트 필드가 아니면 C#의 상수 클래스에 대한 명명 규칙 : 복수 또는 단항?

는, 열거에 대한 단수 이름을 사용하십니까 ... 열거에 대한 명확하다.

(출처 : http://msdn.microsoft.com/en-us/library/ms229040.aspx)

...하지만 상수의 클래스에 대한 분명하지 (또는 읽기 전용 정적 필드/propertes을). 예를 들어이 수업의 이름을 단수 또는 복수로해야합니까?

public static class Token // or Tokens? 
{ 
    public const string Foo = "Foo"; 
    public const string Bar = "Bar"; 
    public const string Doo = "Doo"; 
    public const string Hicky = "Hicky"; 
} 
+0

확장 메소드를 보유 할 클래스를 만드는 경우이를 고려하여 단수 또는 복수 이름을 지정 하시겠습니까? 또한 특정 값/인스턴스에 대한 참조를 보유하고있는 다른 메소드에 대해서도 생각해보십시오. 예 : '색상'. –

+4

Windows 자체가 복수형을 사용하는 것 같습니다 : [System.Windows.Media.Brushes] (http://msdn.microsoft.com/en-us/library/system.windows.media.brushes.aspx) , [System.Windows.Media.Colors] (http://msdn.microsoft.com/en-us/library/system.windows.media.colors.aspx)를 참조하십시오. –

+1

@ RaymondChen 항상 그렇지는 않습니다. 예를 들어'System.Drawing.Color'는 반대의 접근법을 취합니다. - 때로는 WPF 클래스가 이름 지정에 이상한 일을하는 것처럼 보입니다. – BrainSlugs83

답변

22

나는 복수형을 사용할 것입니다 : Tokens. 이것은 정적 클래스가 일종의 (런타임 유형이 클래스의 항목이 아닌) 항목의 컬렉션으로 제공된다는 것을 의미합니다.

한편 열거 형 필드 은 열거 형의 인스턴스입니다. 예를 들어, TypeCode.String a TypeCode입니다. TypeCodes.StringTypeCodes이라고 말하는 것이 이상합니다.

그러나, 당신의 Tokens 예에서 단수를 사용하여 토큰 인 우리에게 Token.Foo를 제공하지만이 아닌 Token는 (그것은 string입니다).

은 (는 복수의 클래스 이름을 사용하는 경우, Tokens.Foostring 아닌 Tokens입니다 긍정.!)

+1

+1. 나는 네 추론을 좋아한다. – devuxer

+1

+1. 나는 상황에 대한 공통의 감각적 접근법을 좋아한다. 어떤 이름을 지을 때 나는 대화에서 발음 할 수 있고 사용할 수 있는지 확인합니다. 어느 시점이나 다른 시점에서 다른 개발자에게 전달해야 할 가능성이 있기 때문입니다. 우리가 사물의 이름을 짓는 데 "표준"이 있지만, 예외적 인 상황으로 인해 표준에서 벗어나는 경우가 있습니다. –

1

나는 연결할 공식적인 명명 표준이 없지만 내가 할 수있는 것을 말할 수 있습니다.

내가 복수의 이름을 사용합니다 : 모두 본질적으로 같은 방식을 사용하고 있기 때문에

+0

나는 열거 형에 대한 명명 지침을 종종 깨뜨리고 이름을 복수로 지정한다. 그것은 나에게 더 자연 스럽습니다. –

6

토큰, 그리고 개념적으로 같은 일이다, 나는 열거 지침에 따라 단지 권하고 싶습니다.

+1

+1은 단수입니다. IMHO 복수형은 정적 클래스 (Token Foo, Bar 등을 포함한 컨테이너)를 작성할 때 의미가 있지만, 정적 클래스 (Token Foo로 무언가를 수행하십시오.)를 사용할 때는 단수입니다. 두 번째 사례 (토큰 사용)가 첫 번째 사례 (토큰 정의)보다 중요하므로 단수가 더 적합합니다. –

0

나는 복수의 이름을 사용합니다 : Tokens

당신은 Token를 만드는 고려할 수있다 그러나 const 치를 보관 유지하는 클래스

이것은 System.Windows.Media.Colors과 유사 할 것이다. Colors.BlueSystem.Windows.Media.Color 인스턴스를 반환합니다.