* 정의
C#은 변수나 상수에 대해 형식을 정확하게 검사하는 강력한 형식의 언어(Strong Typed Language)이다.
https://create-new-worlds.tistory.com/343
[C#] 강력한 형식 언어(Strongly Typed Language)
* 정의 강력한 형식 언어에서는 변수를 사용하기 전에 타입을 명시적으로 선언해야한다. int, char 등 을 포함한 모든 데이터 타입은 미리 프로그래밍 언어에 선언되어 있어야 하고 모든 변수나 상
create-new-worlds.tistory.com
하지만 C#에서는 지역 변수들을 명확한 타입 없이 사용할 수 있도록 var 키워드를 제공하고 있다. var 키워드는 암시적 타입(implicit type)을 가능하게 해주는 키워드로 이를 통해 변수를 선언할 수 있다. var 타입 변수는 기본 데이터 타입, 익명 타입, 사용자 정의 타입을 저장하기 위해 사용할 수 있다.
* 사용 이유
- 타입을 알 수 없는 경우 선언하기 위해 사용한다. (Generic 타입, 람다, 쿼리 표현식 등) // 만약 타입을 알고 있다면 명시적으로 작성해야한다. 컴파일러가 타입을 결정하기 위해 추가 작업을 수행하기 때문에 이미 알고 있는 타입이라면 불필요한 작업이 추가되는 것이다.
- 어떤 유형의 데이터가 변수에 저장될지 확실하지 않을 때 사용한다.
- 익명 타입, 익명 컬렉션에 사용한다.
- 클래스의 이름이 너무 길 때 사용한다.
- 임포트한 네이밍 컨벤션을 따르지 않는 코드 타입에 사용한다.
* 주의 사항
다음과 같은 주의 사항이 있다.
- 선언과 동시에 초기화된 지역 변수에만 사용 가능하다.
- 클래스의 필드로 사용될 수 없다.
- var 변수는 초기화 표현식에서 사용될 수없다.
- 여러 var 변수를 동일한 statement에서 초기화할 수 없다.
- var 로 받는 타입이 스코프안에 있는 경우 var 키워드는 해당 타입이름으로 확인된다.
'C#' 카테고리의 다른 글
[C#] ref, out (0) | 2022.06.28 |
---|---|
[C#] 강력한 형식 언어(Strongly Typed Language) (0) | 2022.06.28 |
[C#] 박싱과 언박싱(Boxing and Unboxing) (0) | 2022.06.28 |
[C#] object (0) | 2022.06.28 |
[C#] string vs StringBuilder (0) | 2022.06.28 |