본문 바로가기
프로그래밍/c#

c# var 키워드 (implicitly typed local variable)

by 지나팩 2021. 8. 25.

var에 대해서 알아보겠습니다. var은 implicitly typed local variable 암시적 타입 지역변수 입니다. 이게 무엇이냐? 사용자에 의해 지역변수의 타입이 정해지는 것이 아니라 컴파일러에 의해서 타입이 정해지는 것입니다.

위 예제에서 보듯 int타입을 명시적으로 선언하고 초기화하고 있는데 반해 var의 경우 어떠한 키워드 없이 값이 대입되고 있는 것을 볼 수가 있습니다. var은 대입되는 값의 타입에 따라서 컴파일러에 의해 타입이 정해집니다.

선언과 동시에 초기화 되어야 함

그렇기에 var를 통해서 지역변수를 선언하려면 바로 초기화를 해주어야 합니다.

초기화에 의해 타입이 정해지면 다른 타입의 값은 대입할 수 없음

대입되는 값의 타입에 따라 변수의 타입은 암시적으로 정해집니다. 당연하게도 그 변수는 다른 타입의 값을 대입하게되면 오류가 발생합니다.

이 var키워드는 지역변수에만 사용가능합니다. 멤버 변수로서는 사용할 수 없습니다.

var키워드를 사용하는 이유는 개발자의 실수를 방지하기 위함입니다. 특히 타입 변환시 실수로 다른 타입으로 변환하는걸 방지하게 됩니다. 그리고 코드의 가독성 또한 올라갑니다. 물론 남용하는 것은 좋지 않겠습니다. 필요한 상황에 맞게 사용하시면 될 것 같습니다.

 

실수 타입을 통해서 정밀도 계산을 해야하는 경우는 var쓰기보단 직접적으로 타입을 명시하길 권합니다. 이러한 경우 가독성과 정밀도에 오류가 발생할 수 있습니다.

 

변수의 타입이 궁금하다면 GetType메소드를 통해서 타입을 알 수 있습니다.

댓글