지역 변수를 선언할 때는 var를 사용하는 것이 낫다.
[ Content ]
- var : 익명 타입을 제공하는 C#에서 타입을 암시적으로 선언하는 키워드.
- 이유
1. 적절한 사용으로 코드의 가독성을 높일 수 있다.
예를 들어, Dictionary<int, Queue<String>>과 같은 기술 타입 자체보다 타입을 유추할 수 있는 변수 이름과 암시적 타입 선언을 사용하는 것이 가독성을 올릴 수 있습니다.
당연하지만, 무분별한 사용은 오히려 가독성을 해칠 수 있죠!!
특히, 내장 숫자 타입들과 var를 함께 사용할 때는 주의해야 합니다. 내장 숫자 타입들은 다양한 형변화 기능을 가지고 있고, 정밀도도 각기 다르기 때문에 숫자 타입과 var를 함께 사용하면 가독성과 정밀도에 관련되어 혼돈을 유발할 가능성이 있기 때문입니다. 또한 변수 타입이 쉽사리 짐작되지 않는 경우라면, 암시적 선언보다는 명시적을 선언하는 편이 낫습니다.
2. 쿼리문 사용 시, 반환 타입이 IEnumerable<T>와 IQueryable<T> 중, 정확한 타입을 알지 못한 채, 명시적으로 타입을 지정하게 된다면, 득보다 실이 많을 수 있다.
IQueryable<T>를 IEnumerable<T>로 받게되면 강제 형변환이 발생하고, IQueryProvider가 제공하는 장점을 읽게 됩니다. 이 때, IQueryable<T>는 IEnumeable<T>를 상속받은 것으로 형변환이 일어날 뿐, 에러가 발생하지 않아 파악하는데 어려움이 생깁니다.
. IEnumerable<T>와 IQueryable<T> 차이
http://monkeychoi.blog.me/220556573557
[ Digression ]
실제로 코드를 작성하면서 var타입을 많이 사용하고 있습니다. 프로젝트 상의 상속구조와 객체들이 많아지면 함수의 이름이나 변수의 이름으로 필요한 것을 찾아 쓰고 이에 따른 반환 값이나 지역 변수를 사용할 때 var타입을 사용하는 편입니다. 생각보다 복잡하게 선언된 타입들도 많아 코드량도 줄일 수 있고 가독성을 높일 수 있다고 생각합니다.
초반 작업에는 내장 숫자 타입을 var로 받아 의도치 않은 정밀도를 봤던 경우도 있었습니다. 위의 내용처럼 무분별한 사용이 아닌 적절히 사용한다면 확실히 편하게 사용할 수 있는 부분들이 많습니다.
참 고 : Effective C#
'책 > Effective C#' 카테고리의 다른 글
Item 6. nameof( ) 연산자를 적극 활용하라. (0) | 2019.01.31 |
---|---|
Item 5. 문화권별로 다른 문자열을 생성하려면 FormattableString을 사용하라. (0) | 2019.01.30 |
Item 4. String.Format()을 보간 문자열로 대체하라. (0) | 2019.01.11 |
Item 3. 캐스트보다는 is, as가 좋다. (0) | 2018.10.26 |
Item 2. const보다는 readonly가 좋다. (0) | 2018.09.28 |