var이 생소한 분들도 있고 익숙한 분들도 있겠죠.
많은 분들이 var과 object에 대해서 큰 고민없이 사용하고 있는데요.
익명타입인 var은 C# 3.0에서부터 지원하는 기능입니다. 일반적으로 변수를 선언할때 명시적으로 변수의 타입을 선언하는데요.
익명타입을 사용할 경우 자동으로 할당받은 타입으로 인식됩니다. 이는 object와는 큰 차이가 있습니다. object는 해당 타입을 boxing하는 과정을 통해서 기존의 타입을 감추는 것이였지만, var에서는 이러한 과정이 없습니다.
프로그래머는 타입을 신경쓰지 않고 var를 사용하면 컴파일러가 자동으로 변수의 타입을 인식하는 것이죠.
일반적으로 var이 사용되는 경우는 2가지가 있는데요. 가장 흔하게 사용되는 경우는 이미 정해진 타입의 변수를 새로운 메모리에 할당하는 경우입니다.
예를 들면
이런 경우로 사용할 경우 지켜줄 원칙이 있는데요. 다른 사람이 자신의 코드를 읽을때 new로 생성한 변수는 해당 변수의 타입을 쉽게 알 수 있지만, 함수나 다른 변수로부터 가져오는 경우 한번 더 확인하는 과정이 필요하기 때문에 왠만하면 var를 사용하지 않거나 변수이름에 타입을 유추할 수 있도록 적어주는 것이 중요합니다. (물론 개인적인 의견입니다.)
2번째 경우는 new 라는 키워드를 이용해서 익명타입을 생성하는 경우인데요.
많은 분들이 var과 object에 대해서 큰 고민없이 사용하고 있는데요.
익명타입인 var은 C# 3.0에서부터 지원하는 기능입니다. 일반적으로 변수를 선언할때 명시적으로 변수의 타입을 선언하는데요.
익명타입을 사용할 경우 자동으로 할당받은 타입으로 인식됩니다. 이는 object와는 큰 차이가 있습니다. object는 해당 타입을 boxing하는 과정을 통해서 기존의 타입을 감추는 것이였지만, var에서는 이러한 과정이 없습니다.
프로그래머는 타입을 신경쓰지 않고 var를 사용하면 컴파일러가 자동으로 변수의 타입을 인식하는 것이죠.
일반적으로 var이 사용되는 경우는 2가지가 있는데요. 가장 흔하게 사용되는 경우는 이미 정해진 타입의 변수를 새로운 메모리에 할당하는 경우입니다.
예를 들면
var numbers = new List<int>();
이런 코드이죠. 이미 오른쪽에서 리스트를 생성하여 numbers라는 변수에 할당하였죠. 이 경우 numbers는 별도의 unboxing 과정이 없어도 리스트로 인식됩니다. 이런 경우로 사용할 경우 지켜줄 원칙이 있는데요. 다른 사람이 자신의 코드를 읽을때 new로 생성한 변수는 해당 변수의 타입을 쉽게 알 수 있지만, 함수나 다른 변수로부터 가져오는 경우 한번 더 확인하는 과정이 필요하기 때문에 왠만하면 var를 사용하지 않거나 변수이름에 타입을 유추할 수 있도록 적어주는 것이 중요합니다. (물론 개인적인 의견입니다.)
2번째 경우는 new 라는 키워드를 이용해서 익명타입을 생성하는 경우인데요.
var students = new[]
{
new { Name = "KSY", Score = "89" },
new { Name = "LTW", Score = "50" },
new { Name = "KHJ", Score = "37" },
}
이런식으로 생성하게 되면 별도의 클래스를 생성하지 않아도 자신이 원하는 타입의 변수를 만들 수 있습니다. 하지만 익명타입의 경우 다른 사람이 쉽게 파악하기 어렵다는 단점이 있기 때문에 내부적으로 사용하는 것을 추천합니다.'C# Programming' 카테고리의 다른 글
[C# 비트연산] AND, OR, XOR, NOT (0) | 2019.04.26 |
---|---|
[C# enum 열거형] #01. enum 활용하기 (0) | 2019.04.26 |
[ C# System.DateTime ] 시간, 날짜 가져오기 (0) | 2019.04.25 |
[ C# 접근제한자 ] public, private, internal, protected (0) | 2019.04.25 |
[ C# 네임스페이스 ] 왜 네임스페이스가 필요한가? (0) | 2019.04.25 |