Programming

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

procodes 2020. 2. 25. 22:53
반응형

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


private const int THE_ANSWER = 42;

또는

private const int theAnswer = 42;

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


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

private const int TheAnswer = 42;

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


실제로는

private const int TheAnswer = 42;

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


시각적으로 대문자가 좋습니다. 그렇게 인식 할 수 있습니다. 독창성을 위해 추측 할 기회를 남기지 않기 위해 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 might lose its charm
private void DoSomething(){
var getCons1 = Constant.Cons1;
var getCons2 = Constant.coNs2;
var getCons3 = Constant.cOns3;
var getCons4 = Constant.CONS4;
 }

나는 여전히 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

이것은 거의 요약합니다.


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

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

private const int Answer = 42;

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

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


기사 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;
}

그래서, 상수, 나타납니다 마이크로 소프트의 사용을 권장된다 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는 질문에 제시된 예에 표시된 것처럼 개인 식별자에 대한 특정 명명 또는 대문자 표기 규칙을 옹호하지 않습니다 .


실제로 PascalCase를 선호하는 경향이 있지만 습관이 없으면 UPPER_CASE가 유죄입니다 ...


ALL_CAPS는 내가 믿는 C 및 C ++ 작업 방식에서 가져 왔습니다. 이 문서 여기는 스타일의 차이에 대해 온 방법을 설명합니다.

Visual Studio와 같은 새로운 IDE에서는 유형, 범위 및 상수를 쉽게 식별 할 수 있으므로 꼭 필요한 것은 아닙니다.

의 FxCop 및 Microsoft StyleCop의 소프트웨어는 당신에게 지침을주고 모두가 같은 방식으로 작동합니다 귀하의 코드를 확인하는 데 도움이됩니다.

참고 URL : https://stackoverflow.com/questions/242534/c-sharp-naming-convention-for-constants



반응형