상수에 대한 C# 명명 규칙?
private const int THE_ANSWER = 42;
또는
private const int theAnswer = 42;
개인적으로 저는 ALL_CAPS가 이상하게 보이기 때문에 현대 IDE와 함께 카멜 케이스를 사용해야 한다고 생각합니다.당신은 어떻게 생각하나요?
PascalCasing을 상수에 사용하는 것이 권장 이름 지정 및 대문자 표시 규칙입니다(Microsoft에는 StyleCop이라는 도구가 있어 선호하는 모든 규칙을 문서화하고 소스의 규정 준수 여부를 확인할 수 있습니다(많은 사용자의 취향에 따라 약간 너무 보존적이긴 하지만).
private const int TheAnswer = 42;
Pascal 대문자 표기법은 Microsoft의 Framework Design Guidelines에도 나와 있습니다.
시각적으로, 대문자가 방법입니다.그것은 그렇게 인식할 수 있습니다.유니크함과 추측의 여지를 남기지 않기 위해 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;
적어도 그것을 보면요.IMO가 명명 규칙을 결정하는 가장 좋은 방법인 NET 라이브러리를 사용하면 코드가 잘못 표시되지 않습니다.
저는 여전히 const 값을 대문자로 사용하지만, 이것은 어떤 특별한 이유 때문이라기보다는 습관적인 것입니다.
물론 그것은 어떤 것이 항상 존재한다는 것을 쉽게 즉시 알 수 있게 합니다.제 질문은 우리가 이 정보가 정말 필요한가 하는 것입니다.오류를 방지하는 데 어떤 도움이 됩니까?내가 const에 값을 할당하면 컴파일러는 내가 멍청한 짓을 했다고 말할 것입니다.
내 결론은:낙타 케이싱으로 가세요.아마 나도 스타일을 바꿀 것 같습니다 ;-)
편집:
헝가리 냄새가 난다는 것은 타당한 주장이 아닙니다, IMO. 질문은 항상 다음과 같아야 합니다.도움이 되나요, 아프나요?
헝가리가 도와주는 경우가 있습니다.요즘은 그렇게 많지 않지만, 그들은 여전히 존재합니다.
첫째, 헝가리 표기법은 접두사를 사용하여 매개 변수의 데이터 유형 또는 사용 용도를 표시하는 방법입니다.에 대한 Microsoft의 명명 규칙은 헝가리 표기법 http://en.wikipedia.org/wiki/Hungarian_notation 에 대해 아니오라고 말합니다.
여기에 명시된 것처럼 대문자를 사용하는 것은 권장되지 않습니다. Pascal Case는 허용되는 규약이고 SCREMING CAPS입니다. http://en.wikibooks.org/wiki/C_Sharp_Programming/Naming
또한 Microsoft는 기존 체계와 일치하도록 대문자를 사용할 수 있다고 명시하고 있습니다.http://msdn.microsoft.com/en-us/library/x2dbyw72.aspx
이 정도면 대충 알 수 있습니다.
상수(C# 프로그래밍 가이드) 기사에서 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에서 를 사용할 것을 권장하는 것으로 보입니다. 그러나 이러한 상수는 로컬로 정의됩니다.
외부에서 볼 수 있는 상수의 이름을 지정하는 것이 더 큰 관심사라는 것은 논쟁의 여지가 있습니다.실제로 Microsoft는 공개 상수를 에 문서화합니다.NET 클래스 라이브러리를 필드로 지정합니다.다음은 몇 가지 예입니다.
- Int32.MaxValue
- 문자열. 비어 있음 (계속,
static readonly
) - 수학.PI
- 수학.E
처음 두 개는 의 예입니다.세 번째는 마이크로소프트의 대문자 표기법을 따르는 것으로 보입니다(파이는 익명이 아닙니다).그리고 네 번째는 두 글자의 익명성에 대한 규칙이 단일 문자의 약자 또는 식별자로 확장된다는 것을 시사하는 것으로 보입니다.E
(수학적 상수 e를 나타냄).
문서에서 을 게가다, 표문서에서법는, 마로소프트필드야식어한통명다고되다명매해있니언우으직로적접습급하고이별음을크다자가대기문자▁further▁ident▁field▁that▁via▁be▁in를 통해 지정해야 한다고 매우 직접적으로 명시하고 있습니다.PascalCasing
및 는 MessageQueue에 대한 다음 예제를 제공합니다.무한시간 초과 및 UInt32.최소:
public class MessageQueue
{
public static readonly TimeSpan InfiniteTimeout;
}
public struct UInt32
{
public const Min = 0;
}
결론: 공공 상수에 사용(다음과 같이 문서화됨)const
또는static readonly
필드)를 선택합니다.
마지막으로, 제가 알기로는 Microsoft는 질문에 제시된 예와 같이 개인 식별자에 대한 특정 명명 규칙이나 대문자화 규칙을 지지하지 않습니다.
헝가리어는 헝가리인들에게 맡기세요.
이 예에서 저는 심지어 최종적인 기사를 빼고 그냥 진행할 것입니다.
private const int Answer = 42;
그게 답입니까, 아니면 그게 답입니까?
*Pascal이 엄격히 정확하게 편집되었지만, 저는 그 질문이 삶, 우주, 그리고 모든 것에 대한 답을 찾는 것이라고 생각했습니다.
저는 사실 여기서 파스칼 케이스를 선호하는 경향이 있습니다. 하지만 습관적으로, 저는 UPPER_CASE를 범했습니다.
ALL_CAPS는 제가 생각하는 C와 C++의 작업 방식에서 가져온 것입니다.이 기사는 스타일 차이가 어떻게 발생했는지 설명합니다.
Visual Studio와 같은 새로운 IDE에서는 유형, 범위 및 일정한 경우 쉽게 식별할 수 있으므로 엄격하게 필요하지 않습니다.
FxCop 및 Microsoft StyleCop 소프트웨어는 모든 사용자가 동일한 방식으로 작업할 수 있도록 지침을 제공하고 코드를 확인하는 데 도움이 됩니다.
언급URL : https://stackoverflow.com/questions/242534/c-sharp-naming-convention-for-constants
'programing' 카테고리의 다른 글
명령줄 인수를 사용하여 PostgreSQL .sql 파일 실행 (0) | 2023.05.05 |
---|---|
git 복제 중 원격 종료가 예기치 않게 끊어졌습니다. (0) | 2023.05.05 |
asp.net 외부에서 레이저 뷰 엔진을 사용할 수 있습니까? (0) | 2023.05.05 |
잡기 및 다시 던지기에 대한 모범 사례.NET 예외 (0) | 2023.05.05 |
WPF의 DataGrid Column 바인딩 가시성 (0) | 2023.05.05 |