Programing/C#
[Effective C#] 아이템1: 지역변수를 선언할 때는 var를 사용하는 것이 낫다
Napoliano
2025. 2. 9. 18:52
728x90
코드를 읽을 때 타입을 명시적으로 드러내야 하는 경우가 아니라면 var를 사용하는 것이 좋다. C# 언어가 익명 타입을 지원하기 위해서 타입을 암시적으로 선언할 수 있는 손쉬운 방법을 제공할 뿐만 아니라, 정확한 반환 타입을 알지 못한 채 올바르지 않은 타입을 명시적으로 지정하게 되면 득보다 실이 많기 때문이다. 예를 들어 IQueryable 컬렉션을 IEnumerable로 강제 형변환하게 되면 IQueryProvider가 제공하는 장점을 모두 잃게 된다.
var f = GetMagicNumber();
var total = 100 * f / 6;
다만 내장 숫자 타입을 선언할 때는 명시적으로 타입을 선언하는 편이 낫다.
관련해서 위 코드를 보면, 컴파일러는 GetMagicNumber() 메서드의 반환 타입으로 f의 타입을 결정한다. total 계산 시에 사용한 상수는 모두 리터럴이므로 컴파일러가 이 상수들을 f와 동일한 타입으로 변환한 후 계산하게 되는데 이런 이유로 GetMagicNumber()의 반환 타입에 따라 결과값에 차이가 생긴다. 따라서 내장된 숫자 타입과 var를 함께 사용할 때는 항상 주의해야 한다.
728x90