값을 변수에 할당하기 위해서는 변수에 할당할 값에 맞는 타입을 자료형으로 미리 기입해야 합니다.
예를 들어 숫자 1을 변수에 넣고 싶다면 아래와 같이 int자료형을 미리 세팅을 해줘야 하죠.
var키워드란?
하지만 var 키워드를 쓰면 값만 넣어주면 알아서 자료형 선택해줍니다.
output :
실제로 타입을 확인해보면, 타입이 int32로 할당 된것을 알 수 있죠.
var키워드 제약사항
하지만 너무나도 편리한 var키워드에는 몇가지 제약 사항이 있습니다.
1) 지역변수(local)는 사용가능 하나 전역변수(global)로는 사용이 불가
즉 함수안이나, for loop 내부 스코프안에서만 사용이 가능하다는 단점이 있습니다.
아래 코드를 보시면 함수 바깥에서 var키워드로 정의한 부분이 오류가 나죠.
2) 함수의 리턴타입을 적는 부분에 사용 할 수 없습니다.
3) 매개변수 인자에 적는 타입으로 사용이 불가 합니다.
var은 어디에 주로 쓰일까?
var의 메인 장점은 아래와 같습니다.
1) 복잡한 타입을 간단하게 축약할 수 있습니다.
아래와 같이 복잡한 타입같은 경우 그냥 var만 적어주면 해결이 되죠.
2) 익명 타입에 사용
익명 타입은 정해진 타입 자체가 따로 없기 때문에 var 키워드를 사용합니다.
(익명 타입을 잘 모르시는 분은 해당 포스팅 참조)
var키워드가 파워풀한것은 알겠지만, 여전히 제약사항이 마음에 걸리시는 분들이 있을겁니다.
이러한 문제를 해결할 키워드도 있습니다.
바로 dynamic 키워드인데요.
dynamic 키워드
사용방법은 var키워드 대신 dynamic키워드를 사용하면 됩니다.
정말 기존 제약 사항이 해결되는지 볼까요?
기존 var키워드에선 불가했던 전역 변수로 사용이 가능합니다.
하지만,
dynamic 키워드를 실무에서 쓰는건 권장하지 않습니다.
왜냐하면 dynamic키워드를 많이 쓰면 쓸수록 프로그램의 실행속도가 느려집니다.
또한 변수의 자료형이 실행시점에 결정되기 때문에 예상 밖의 오류들이 발생활 확률이 높기 때문입니다.
이 글과 읽으면 좋은글
'c#' 카테고리의 다른 글
[c#] enum(열거형) 사용 이유/사용법 (3) | 2022.05.16 |
---|---|
[c#] 델리게이트(대리자) 익명 함수로 선언 (0) | 2022.05.13 |
[c#] 익명타입이란? (0) | 2022.05.13 |
[c#] 인터페이스란? (1) | 2022.05.12 |
[c#] 업 캐스팅이란? (0) | 2022.05.12 |
댓글