c#에는 var이라는 키워드가 있다.
(개념 https://msdn.microsoft.com/ko-kr/library/bb384061(v=vs.120).aspx)
명식적으로 타입을 선언 하는 것이 아닌
암시적으로 타입을 선언하는 것이다.
int k =30; (명시적으로 int라고 선언)
var k =30; (암시적으로 선언)
밑에 var을 사용한 경우에는 컴파일러가 오른쪽에 있는 식에서 변수 형식을 유추한다.
이렇게 var을 사용 하더라도 성능에는 전혀 영향이 없다고 한다.
(C#컴파일러는 컴파일 타임에 var변수의 실제 유형을 추론하고, 생성된 IL에는 차이가 없다고 함)
그렇다면 var은 어떤 경우에 쓰면 좋을까? msdn에는 이렇게 적혀 있다.
(Ex) IEnumerable<string> , IQueryable<string> 둘을 처리할 때의 성능이 다르다)
귀찮게 타입명을 직접 선언하지 않아도 된다는 편의성도 분명 있지만,
남발하면 다른 사람이 코드를 이해하기에 별로 좋지 않을 것이라는 생각이 든다.
예를 들어 var data = MyClass.GetData() 이런 식으로 작성을 해 놓으면 만든 사람은 data변수가 정확이 어떤 타입
인지 알 수 있겠으나, 다른 개발자는 data라는 변수가 정확히 어떤 타입인지 한눈에 알지는 못할 것이고 확인을 해
야 할 것이다.
그래서 msdn 문서 맨 밑에도 필요한 경우에만 var을 사용하라고 나와있다.
var을 사용 했을때 모호함을 일으키는 경우라면 명시적으로 선언하는 것이 훨씬 낫다.
특히 내장 숫자 타입을 사용하는 경우 형변환 문제가 생길 수 있기 때문에 피하는 것이 좋다.
-참고 msdn,effective c#
'프로그래밍 > C#' 카테고리의 다른 글
코드 교정? (0) | 2018.08.29 |
---|---|
스트림이란?? (0) | 2018.07.31 |
캘린더 (0) | 2018.03.28 |
C# Dictionary의 성능에 대해서. (0) | 2018.03.25 |
C# 자료구조 정리 (0) | 2018.03.24 |