Questions?
c# 에서는 Object도 사용하고 var도 사용한다. 그 차이점에 대한 의문
Common
두 경우 모두 명시적인 타입설정 없이 변수를 선언하여 사용한다
int a = 0;
object b = (object)a;
var b= 5;
Difference
- Object
Object의 경우 데이터를 값->참조로 박싱하는 과정이 추가되게된다.
얘를들어 특정 int a=30; 값을 object로 형변환 하게 될경우
새로운 heap영역에 공간을 할당하게되고 해당 힙영역의 주소를 stack에 가지고 있게 된다.
값을 변경하게 된 경우에도 기존값의 참조를 지워버리게 되고, 새로운 주소값을 가지는 힙영역의 메모리를 새로 할당받아 해당 값을 저장하게 된다.
- var
var의 경우는 들어온 값에 따라 자료형을 컴파일러에서 추론해서 해당 자료형으로 변환하여 넣어주게된다. 실제로 a의 자료형은 int로 저장이되고 b의경우는 double형으로 저장이 됨.
Reference
https://while1.tistory.com/44