프로그래밍/c#

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

지나팩 2021. 8. 25. 23:01

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

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

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

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

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

 

 

 

 

 

 

 

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

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

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

 

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

 

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