ITEM 1 :: EFFECTIVE C#


안녕하세요


이번에 작성할 글의 주제는 C# 도서 중 하나인 C# Effective에 관하여 입니다.

각 주마다 5개의 아이템을 올릴 예정이며, 대부분은 평일에 올리게 됩니다.

1번째 아이템은 바로, 지역변수를 선언할 때는 Var를 사용하는 것이 낫다, 입니다.

장점과 단점, 그리고 정리하여 전체적으로 서술 하겠습니다. 먼저, 장점부터.

장점

  1. 먼저 간단하게 생각해본 이유로는 Var를 사용하게 되면 암시적으로 원하는 변수를 선언할 수 있다는 간편함의 장점이 있습니다. 이 부분에 있어서는, 단점도 존재하지만, 변수를 선언하는 과정에 있어서 잘 사용한다면 메리트가 되는 것은 분명합니다.

  2. 책의 예제에서도 나왔듯이, 정확한 반환 타입을 알지 못한 채 올바르지 않은 타입을 명시적으로 지정하게 되면 내부적으로 데이터의 손실 혹은 소실이 발생할 수 있다는 점을 미연에 방지할 수 있다는 것입니다.

  3. 책의 예제에서 나온 부분인데, 변수의 이름에 조금 더 집중을 할 수 있게 되어, 타입을 보지않고도 그 변수의 역할에 대해 깊게 생각할 수 있다는 점을 장점으로 꼽았습니다.

단점

  1. 가독성이 좋지 못하다는 점입니다. 물론, Var를 쓰지 않고 명시적으로 선언한다고 해도 가독성이 좋아지지 않을 경우도 있겠지만, Var의 지나친 남용은 변수의 타입에 대한 망각을 일으킵니다.

  2. 명시적으로 했을경우보다, 내부 안정성이 떨어진다는 점입니다. 책의 예제에서 비교한 2개의 템플릿은, 서로 상속관계에 존재하는 특수한 케이스기 때문에, 컴파일러가 타입형을 추론하여 작성하게 하는 편이 좋을 것이라고 되어있는 것입니다. 하지만, 그러한 경우가 아닐 경우에는 데이터의 손실을 일으킬 수 있는 부분이 있는데, 그것은 바로 정수형입니다. 정수형의 경우 데이터가 잘리거나, 소실되는 부분이 있을 수가 있어, 책에서도 정수형의 경우에는 명시를 해주는 것이 좋다라고 적혀 있습니다.

정리

  • 즉, 정수형에 대해서는 명시를 해주고, 그외에 특별하게 데이터의 소실 혹은 손실이 일어날 경우에만 판단하여 명시하는 것이 좋고, 그외에는 Var를 씀으로써 컴파일러에게 타입형을 추론할 수 있게 하는 것이 좋다고 생각한다. 허나, 지나친 남용은 금지!