[C#] 상수에 대한 C # 명명 규칙?

private const int THE_ANSWER = 42;

또는

private const int theAnswer = 42;

개인적으로 현대 IDE를 사용하면 ALL_CAPS가 이상하게 보일 때 camelCase와 함께 가야한다고 생각합니다. 어떻게 생각해?



답변

권장 명명 및 대문자 규칙은 사용하는 것입니다 P의 ascal의 C를 asing (마이크로 소프트라는 이름의 도구가 상수 StyleCop – 그것은 조금 비록 문서의 모든 기본 규칙 준수에 대한 귀하의 소스를 확인 할 수있는 너무 항문 많은 사람들의 취향에 대한 유지력을) . 예 :

private const int TheAnswer = 42;

파스칼 대문자 표기법은 Microsoft의 프레임 워크 설계 지침 에도 문서화되어 있습니다.


답변

시각적으로 대문자가 좋습니다. 그렇게 인식 할 수 있습니다. 독창성을 위해 추측 할 기회를주지 않기 위해 UPPER_CASE에 투표합니다!

const int THE_ANSWER = 42;

참고 : 대문자는 페이지 상단의 동일한 파일 내에서 상수를 사용할 때 유용하게 사용됩니다. 그러나 이들이 독립적 인 클래스로 옮겨 질 경우 대문자를 사용하면 큰 차이가 없습니다.

public static class Constant
{
    public static readonly int Cons1 = 1;
    public static readonly int coNs2 = 2;
    public static readonly int cOns3 = 3;
    public static readonly int CONS4 = 4;
}

// Call constants from anywhere
// Since the class has a unique and recognizable name, Upper Case might lose its charm
private void DoSomething(){
var getCons1 = Constant.Cons1;
var getCons2 = Constant.coNs2;
var getCons3 = Constant.cOns3;
var getCons4 = Constant.CONS4;
 }


답변

실제로는

private const int TheAnswer = 42;

적어도 .NET 라이브러리를 살펴보면 명명 규칙을 결정하는 가장 좋은 방법은 IMO입니다. 따라서 코드가 제대로 표시되지 않습니다.


답변

나는 여전히 const 값을 대문자로 사용하지만 이것은 특별한 이유보다 습관이 아닙니다.

물론 무언가가 const라는 것을 즉시 쉽게 볼 수 있습니다. 나에게 질문은 :이 정보가 정말로 필요한가? 오류를 피하는 데 어떤 도움이됩니까? const에 값을 할당하면 컴파일러가 바보 같은 짓을했음을 알려줍니다.

내 결론 : 낙타 케이싱으로 가십시오. 어쩌면 나도 내 스타일을 바꿀 것입니다 😉

편집하다:

뭔가 그 냄새 헝가리어은 IMO, 정말 유효한 인수가 아닙니다. 문제는 항상 다음과 같아야합니다. 도움이됩니까, 아니면 아프습니까?

헝가리어가 도움이되는 경우가 있습니다. 오늘날에는 그렇게 많지는 않지만 여전히 존재합니다.


답변

첫째, 헝가리 표기법은 접두사를 사용하여 매개 변수의 데이터 유형 또는 용도를 표시하는 방법입니다. 헝가리 표기법에 대한 Microsoft의 명명 규칙에 따르면
http://en.wikipedia.org/wiki/Hungarian_notation
http://msdn.microsoft.com/en-us/library/ms229045.aspx

여기에 명시된 바와 같이 대문자 사용은 권장되지 않습니다. 파스칼 케이스는 허용되는 컨벤션 및 스크린 캡입니다.
http://en.wikibooks.org/wiki/C_Sharp_Programming/Naming

또한 Microsoft는 기존 구성표와 일치하도록 대문자를 사용할 수 있다고 설명합니다.
http://msdn.microsoft.com/en-us/library/x2dbyw72.aspx

이것은 거의 요약합니다.


답변

기사 Constants (C # Programming Guide) 에서 Microsoft는 다음 예제를 제공합니다.

class Calendar3
{
    const int months = 12;
    const int weeks = 52;
    const int days = 365;

    const double daysPerWeek = (double) days / (double) weeks;
    const double daysPerMonth = (double) days / (double) months;
}

따라서 상수의 경우 Microsoft의 사용을 권장하는 것으로 보입니다camelCasing . 그러나이 상수는 로컬로 정의되어 있습니다 .

외부에서 볼 수있는 상수의 이름 지정이 더 중요합니다. 실제로 Microsoft는 공용 상수 를 .NET 클래스 라이브러리에 필드 로 문서화 합니다 . 여기 몇 가지 예가 있어요.

처음 두 개는의 예입니다 PascalCasing. 세 번째 는 두 글자의 약어에 대한 Microsoft의 대문자 표기 규칙 을 따르는 것으로 보입니다 ( pi 는 약어 는 아님). 그리고 네 번째 문자는 두 글자의 약어에 대한 규칙이 E(수학적 상수 e 를 나타내는) 단일 문자 약어 또는 식별자로 확장된다고 제안하는 것 같습니다 .

또한 대문자 표기법 문서에서 Microsoft는 필드 식별자를 통해 이름을 지정해야하며 MessageQueue.InfiniteTimeoutUInt32.Min에PascalCasing 대한 다음 예제를 제공합니다 .

public class MessageQueue
{
    public static readonly TimeSpan InfiniteTimeout;
}

public struct UInt32
{
    public const Min = 0;
}

결론 : PascalCasing공용 상수 ( const또는 static readonly필드 로 문서화 )에 사용합니다.

마지막으로, 내가 아는 한, Microsoft는 질문에 제시된 예에 표시된 것처럼 개인 식별자에 대한 특정 명명 또는 대문자 표기 규칙을 옹호하지 않습니다 .


답변

헝가리 인은 헝가리 인에게 맡기십시오.

이 예에서는 결정적인 기사를 제외하고

private const int Answer = 42;

그 대답입니까? 아니면 그 대답입니까?

* 파스칼로 엄격하게 수정했지만, 나는 그 질문이 삶과 우주 그리고 모든 것에 더 많은 해답을 찾고 있다고 생각하고있었습니다 .