안녕하세요, 개발자 윤진입니다.
'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를 사용할까요?
이 부분은 마이크로소프트 코딩컨벤션 페이지를 보면 명확해집니다.
Identifier | Case | Example |
---|---|---|
Class | Pascal | AppDomain |
Enum type | Pascal | ErrorLevel |
Enum values | Pascal | FatalError |
Event | Pascal | ValueChange |
Exception class | Pascal | WebExceptionNote Always ends with the suffix Exception. |
Read-only Static field | Pascal | RedValue |
Interface | Pascal | IDisposableNote Always begins with the prefix |
Method | Pascal | ToString |
Namespace | Pascal | System.Drawing |
Parameter | Camel | typeName |
Property | Pascal | BackColor |
Protected instance field | Camel | redValueNote Rarely used. A property is preferable to using a protected instance field. |
Public instance field | Pascal | RedValueNote Rarely used. A property is preferable to using a public instance field. |
MaxValue는 Struct 내에 위치하며 외부에서 접근 가능한 변수입니다.
그렇기 때문에, Public instance field를 위한 코딩컨벤션을 따라주어야 하지요.
그래서 'int.MaxValue'라는 형태가 완성되었죠.
간단한 의문을 간단하게 해결해보았습니다.
그럼 즐거운 하루 보내세요.
'IT' 카테고리의 다른 글
[C#] 왜 partial class를 사용하는걸까요? (34) | 2017.02.01 |
---|---|
[C#] char[]를 string으로 변환하기 (30) | 2017.01.31 |
[C#] bool.Parser vs Convert.ToBoolean() (0) | 2017.01.30 |
[C#] Unicode에서 한글 초성/중성/종성에 대한 짧은 고찰 (0) | 2017.01.29 |
[C#] UTF-16의 캐릭터 크기에 대한 간단한 탐구 (0) | 2017.01.28 |
[C#] 코딩컨벤션, linux_kernel_coding_style vs camelCase vs PascalCase (2) | 2017.01.26 |
[Visual Studio] Start debugging vs Start without debugging (1) | 2017.01.16 |
[Moonlight] 사요나라, 문라이트 프로젝트 (0) | 2017.01.02 |
[러시아] 러시아어 키보드가 어렵다! [모바일 안드로이드 버전편] (2) | 2016.03.17 |
비행기에서 최적의 자리는 어디일까요? (3) | 2016.03.13 |