포스트

var - 정적 타이핑 타입 추론 키워드

var란

C#의 var 키워드는 정적 타이핑(Static Typing) 타입 추론(Type Inference) 키워드입니다.

정적 타이핑이란, 컴파일 시점에 변수의 타입이 정해지는 방식을 의미합니다. C#은 정적 타이핑 언어로, 모든 변수는 컴파일 시점에 명확한 타입을 가집니다.

var 키워드는 컴파일러가 변수의 타입을 초기화 식을 통해 자동으로 추론하도록 합니다.

이로인해 개발자가 명시적으로 타입을 선언하지 않아도 된다는 편의성을 제공합니다.

예를 들어, 긴 타입을 반복적으로 작성할 필요 없이 var를 사용해 간결하게 코드를 작성할 수 있습니다.

1
2
var numbers = new List<int>(); // List<int> 타입으로 추론됨
var person = new Dictionary<string, string>(); // Dictionary<string, string> 타입으로 추론됨

특징

  1. 타입 생략으로 인한 코드 간소화가독성 개선
    • 긴 타입 이름을 반복적으로 작성하지 않아도 되므로, 코드가 간결해지고, 가독성이 개선될 수 있습니다.
  2. 유지보수 용이성
    • 변수 타입이 코드 변경에 따라 자주 바뀌는 경우, var를 사용하면 일일이 타입을 수정할 필요가 없어 리팩토링이 쉬워집니다.
  3. 익명 타입 사용
    • LINQ 쿼리 같은 익명 타입을 사용할 때 var를 사용합니다.

주의사항

var 키워드는 편리하지만, 잘못 사용하면 오히려 코드의 가독성을 해칠 수 있습니다. 따라서 다음 사항을 주의해야 합니다.

  1. 타입이 명확한 경우 사용
    • var를 사용할 때는 변수의 타입이 명확하게 드러나는 상황에서 사용하는 것이 좋습니다.
    • 예를 들어, var x = GetSomething();의 경우 GetSomething()의 반환형이 무엇인지 명확하지 않아 가독성이 떨어질 수 있습니다. 이러한 상황에서는 타입을 명시적으로 선언하는 것이 유리합니다.
  2. 컴파일러 오류
    • var는 반드시 초기화와 함께 사용되어야 합니다. 초기화 없이 var를 선언하려고 하면 컴파일 오류가 발생합니다.
    • 예를 들어, var x;와 같이 사용할 수는 없습니다.
  3. 암시적 타입의 범위
    • var는 지역 변수에만 사용할 수 있습니다.
    • 클래스 수준의 멤버(필드, 프로퍼티)에는 사용할 수 없으며, 이러한 경우 명시적으로 타입을 선언해야 합니다.

참고

정적 타이핑(Static Typing)과 동적 타이핑(Dynamic Typing) 간단 정리

타입 추론(Type Inference)에 대한 간단한 정리

이 기사는 저작권자의 CC BY-NC-ND 4.0 라이센스를 따릅니다.