반응형 object2 [C#] object와 var의 차이 object와 var 모두 명시적인 타입의 선언 없이도 변수를 선언하는 것이 가능하다. 그러나 두 선언은 사용에 있어 완전히 다르다. 이 둘의 가장 큰 차이는, 어떤 방식으로 값을 저장하냐에 있다. object 먼저 object는 박싱과 언박싱을 통해 값을 저장한다. 값을 박싱 한 뒤 heap에 저장해두고, stack에 해당 주소를 저장하고 있다가 필요할 때마다 참조해서 쓰는 방식이다. 따라서 기존의 값과 타입이 변경되어도, 의도한대로 값이 저장되는 것을 확인 할 수 있다. 타입이 변경되었다하더라도, 기존의 박싱된 상자를 지우고 새로 박싱하여 힙에 저장한 뒤 주소를 바꾸면 되기 때문이다. int a = 30; object b = (object)a; WriteLine("a: " + a); WriteLine.. 2021. 5. 20. [C#] object (boxing/unboxing) object object 형식은 .NET Framework에서 제공하는 어떤 데이터든지 다룰 수 있는 데이터 형식이다. C#은 object가 모든 데이터를 다룰 수 있도록 기본 데이터 형식 뿐 아니라 모든 복합 데이터 형식, 사용자 정의 형식까지도 object 형식으로부터 *상속 받도록 개발되었다. * 상속: 부모 데이터 형식의 유산을 자식이 물려받는 것. 부모로부터 데이터와 메소드를 물려받은 자식은 부모와 똑같이 동작하는 것이 가능 int나 double 등의 값 형식은 스택에 데이터를 할당한다. 하지만 object 형식은 참조형식이므로 힙에 데이터를 할당하며, 값 형식의 데이터를 힙에 할당하기 위해 "박싱(boxing)" 기능과 "언박싱(unboxing)" 기능을 제공한다. object식에 값 형식의 .. 2021. 5. 20. 이전 1 다음 반응형