Home Full Site
C# 코딩: Name Casing

클래스명, 변수명, 메서드명 등과 같은 명칭을 어떤 대소문자 형식으로 표현하는가는 일관된 코드를 유지하는데 중요하다. 아래 표는 프로그래밍에서 일반적으로 사용하는 몇 가지 Casing을 요약한 것이다. 또한, C#의 각 Identifier 명칭마다 어떤 Casing을 사용하는 것이 좋은지를 설명한다.



흔히 사용되는 Casing (Identifier 명칭을 대소문자로 어떻게 표현하는가)

Casing내용예제
Camel Case첫 문자는 소문자이고 계속되는 다음 단어의 첫문자는 대문자로 한다. C#에서 변수명이나 필드명에 사용된다.startIndex
Pascal Case첫 문자와 계속되는 다음 단어의 첫문자를 모두 대문자로 한다. C#에서 클래스, 메서드명, 속성명 등에 사용된다.StartIndex
Snake Case단어(word) 사이를 공백없이 밑줄로 연결한다. C#에서 사용하지 않는다.start_index 혹은 Start_Index
Screaming Snake Case단어(word) 사이를 공백없이 밑줄로 연결하고, 모두 대문자로 한다. C#에서 권장되진 않지만, 상수에 쓰는 경우도 있다.START_INDEX

C#에서의 Casing Convention

  • 클래스명, 메서드명, 속성명, 이벤트명은 Pascal Case를 사용한다.
    public void Order //클래스명. Pascal Case{ public int OrderId { get; set; } //속성명. Pascal Case public void PlaceOrder(int id) //메서드명. Pascal Case { } public event EventHandler Completed; //이벤트명. Pascal Case}

  • 상수가 아닌 필드명은 Camel Case를 사용한다.
    class MyClass{ int startIndex; //Camel Case string lastName; }

  • 메서드 파라미터는 Camel Case를 사용한다.
    CallMethod(startIndex, endIndex);

  • 로컬 변수명은 Camel Case를 사용한다.
    public void Run() { int startIndex; //로컬변수. Camel Case}

  • public 상수(public const)와 public 읽기전용 정적 변수(public static readonly)는 Pascal Case를 사용한다.
    public void Order { public const int MaxOrders = 30; public static readonly Tag; }

  • Enum Value 즉 Enum element는 Pascal Case를 사용한다.
    public enum OrderStatus{ Open, InDelivery CancelByCustomer //...}

C# 코딩: 복합어(Compound Word)

영어의 복합어를 구분할 때, (1) 두 단어가 마치 하나인 것처럼 묶어서 쓰이는 Closed Form (예: endpoint), (2) 두 단어를 하이폰으로 연결하는 Hyphenated Form (예: single-minded), (3) 공백을 중간에 두는 Open Form (예: distance learning) 등으로 나눌 수 있다.

C#에서 Closed Form 복합어인 경우, 각각의 Word를 대문자로 쓰지 않고, 마치 하나의 Word인 것처럼 취급한다. 예를 들어, endpoint는 Closed Form 이므로, EndPoint 로 쓰지 않고, 그냥 endpoint 혹은 Endpoint 로 사용한다. 즉, 변수명과 같은 camel case인 경우 endpoint를 사용하고, 속성명과 같은 pascal case인 경우 Endpoint를 사용한다. Closed Form 이외에 대해서는 각각의 Word를 대문자로 표현한다.




다음은 흔히 사용되는 단어들에 대해 어떻게 표현하는지를 정리한 표이다.
(출처: Framework Design Guidelines)

Pascal (클래스명, 속성명 등)Camel (변수명 등)나쁜 표현
BitFlagbitFlagBitflag
CallbackcallbackCallBack
CanceledcanceledCancelled
DoNotdoNotDont
EmailemailEMail
EndpointendpointEndPoint
FileNamefileNameFilename
GridlinegridlineGridLine
HashtablehashtableHashTable
IdidID
IndexesindexesIndices
LogOfflogOffLogOut
LogOnlogOnLogIn
MetadatametadataMetaData, metaData
MultipanelmultipanelMultiPanel
NamespacenamespaceNameSpace
OkokOK
PipiPI
PlaceholderplaceholderPlaceHolder
SignInsignInSignOn
SignOutsignOutSignOff
UserNameuserNameUsername
WhiteSpacewhiteSpaceWhitespace
WritablewritableWriteable

© csharpstudy.com