[01] 지역변수를 선언할 때는 var를 사용하는 것이 낫다.

다음 본문은 도서 이펙티브 C# (빌 와그너)에서 나오는 주제를 다룹니다.

 

 

var란?

 -변수의 타입을 명시적으로 선언하지 않고, 컴파일러가 타입을 추론하도록 맡기는 키워드.

 

var는 동적 타이핑이 아니라 타입 추론이다. 

 - dynamic의 경우 나중에서야 변수의 타입이 결정된다.

 - 하지만 var는 dynamic과 달리 동적으로 타입이 결정되는 것이 아니라 타입을 추론할 뿐이다.

 

지역변수를 선언할 때는 var를 사용하는 편이 낫다.

 - 코드를 읽을 때 정확한 타입이 기술된 것 보다 타입을 유추할 수 있는 명시적 변수 이름이 더 도움이 된다.

 - 변수 타입을 명시적으로 지정할 때 타입 안정성이 향상되는 것이 아니다.

 

var와 숫자타입을 같이 사용하면 정밀도 문제가 발생할 수 있다

 - 아래의 예제에서 GetNumber() 메소드가 반환하는 자료형이 무엇인지에 따라 결과값이 달라질 수 있다.

 - 두번째 줄의 상수들은 모두 리터럴(literal) 이기 때문에, f와 동일한 타입으로 변환한 후 계산된다.

var f = GetNumber();
var total = 100 * f / 6;

 

var의 단점 : 메서드 이름만으로는 타입을 짐작하기 어렵다

 - 변수명을 명시적으로 드러내는 것으로 해결 가능하다.

 

결론

 - 타입을 명시적으로 드러내야 하는 경우가 아니라면 var를 사용하라. 

 - 단, 내장 숫자타입(int, float, double 등)을 선언할 때는 명시적으로 타입을 선언하라.

 

 

댓글

Designed by JB FACTORY