IT2017.01.27 21:00

안녕하세요, 개발자 윤진입니다.


'17년 1월초 러시아에 파견나와 아침을 먹으며 C# 책을 뒤적거리다가 문득 궁금한게 생겼습니다.

'int.MaxValue'에 적용된 코딩컨벤션을 보면,

'int'는 class 혹은 struct로 보이지만, 첫글자가 소문자인 camelCase가 적용되어 있고,

MaxValue는 멤버변수이지만 첫글자가 대문자인 PascalCase가 적용되어 있는데요.


책에서 읽은 바에 따르면, 

- class & struct는 PascalCase를 따르고,

- 멤버변수는 camelCase를 따르게 되어 있습니다.


C#으로 된 남의 코드를 읽어본 경험이 전무하기 때문에,

책에 명시된 내용과 사뭇 다른 코드를 보니,

책에서 제대로 혹은 충분히 설명하지 않았을 것이란 생각이 들었습니다.


그래서, 약간의 검색을 하니 답은 굉장히 명쾌하더군요.


1. 'int.MaxValue'에서 'int'는 왜 camelCase를 사용할까요?

사실, int는 Int32 struct의 alias입니다.

alias가 개발자 편의나 코드 유지보수 위해 사용되고 있는 만큼,

int도 위와 같은 이유로 Int32를 alias하였습니다.

alias한 int가 마음에 들지 않는다면, 'Int32.MaxValue'와 같은 형태로 사용해도 되겠죠.


2. 'int.MaxValue'에서 'MaxValue'는 왜 PascalCase를 사용할까요?

이 부분은 마이크로소프트 코딩컨벤션 페이지를 보면 명확해집니다.


IdentifierCaseExample
ClassPascalAppDomain
Enum typePascalErrorLevel
Enum valuesPascalFatalError
EventPascalValueChange
Exception classPascalWebException
Note   Always ends with the suffix Exception.
Read-only Static fieldPascalRedValue
InterfacePascalIDisposable
Note   Always begins with the prefix I.
MethodPascalToString
NamespacePascalSystem.Drawing
ParameterCameltypeName
PropertyPascalBackColor
Protected instance fieldCamelredValue
Note   Rarely used. A property is preferable to using a protected instance field.
Public instance fieldPascalRedValue
Note   Rarely used. A property is preferable to using a public instance field.

출처 : "Capitalization Styles"


MaxValue는 Struct 내에 위치하며 외부에서 접근 가능한 변수입니다.

그렇기 때문에, Public instance field를 위한 코딩컨벤션을 따라주어야 하지요.

그래서 'int.MaxValue'라는 형태가 완성되었죠.


간단한 의문을 간단하게 해결해보았습니다.

그럼 즐거운 하루 보내세요.


신고
Posted by 타이젠 개발자, 윤진