C# 코딩: Bracing 스타일
C# 블럭(block)을 표현하는 { 과 } (즉, Open Brace와 Close Brace) 는 항상 라인의 처음에 위치한다.
블럭 안에 단 하나의 문장(statement) 만 있더라도 반드시 Brace를 붙인다. 예를 들어, if() 문 뒤에 한 라인의 문장(statement)만 있더라도 이를 Brace 안에 넣는다. 이는 차후 문장들을 더 추가할 경우 복수 문장들이 if 블럭 안에 쉽게 추가될 수 있게 할 뿐만 아니라, 블럭을 명확히 구분하는 역활을 해서 코드 가독성을 높이기 때문이다. if...else, for/foreach, while 등의 블럭에서 한 문장이라도 항상 Brace를 사용한다.
블럭 안에 단 하나의 문장(statement) 만 있더라도 반드시 Brace를 붙인다. 예를 들어, if() 문 뒤에 한 라인의 문장(statement)만 있더라도 이를 Brace 안에 넣는다. 이는 차후 문장들을 더 추가할 경우 복수 문장들이 if 블럭 안에 쉽게 추가될 수 있게 할 뿐만 아니라, 블럭을 명확히 구분하는 역활을 해서 코드 가독성을 높이기 때문이다. if...else, for/foreach, while 등의 블럭에서 한 문장이라도 항상 Brace를 사용한다.
예제
// 좋은 표현
if (condition)
{
Run();
}
else
{
OtherRun();
}
// 나쁜 표현
if (condition) { //Bad: 시작 Brace는 별도의 라인에 있지 않음
Run();
}
else OtherRun(); //Bad: Brace가 생략되었음
// 나쁜 표현
for (int i = 0; i < 100; ++i) //Bad: Brace가 생략되었음
Run();
if (condition)
{
Run();
}
else
{
OtherRun();
}
// 나쁜 표현
if (condition) { //Bad: 시작 Brace는 별도의 라인에 있지 않음
Run();
}
else OtherRun(); //Bad: Brace가 생략되었음
// 나쁜 표현
for (int i = 0; i < 100; ++i) //Bad: Brace가 생략되었음
Run();
Bracing 스타일: 예외 규칙
Bracing 스타일의 예외 규칙으로 한 라인으로 get/set 속성을 정의하는 경우를 들 수 있다. 즉, 한 라인으로 get 혹은 set 속성을 짧게 정의하는 경우, { } 를 한 라인으로 처리한다.
예제
// OK 표현
Public string Name
{
get { return this.name; }
set { this.name = value; }
}
Public string Name
{
get { return this.name; }
set { this.name = value; }
}
switch/case 문
case문 안에 여러 문장이 있을 경우 break 문을 제외한 문장들을 Brace로 묶으면 읽기 편리하다. 단, case 문에 하나의 문장만 있을 경우 Brace를 생략할 수 있다.
예제
// switch/case문 들여쓰기
switch (category)
{
case 0:
Run1();
break;
case 2:
{
int n = 1;
Run2(n);
}
break;
}
switch (category)
{
case 0:
Run1();
break;
case 2:
{
int n = 1;
Run2(n);
}
break;
}