C#/C#_기초강의
(C#) 자료형: object, 박싱과 언박싱
코딩ABC
2023. 4. 20. 09:26
반응형
object
C#의 object 형식은 .NET의 System.Object의 별칭입니다.
C#의 모든 형식(값 형식, 참조 형식, 사용자 정의 형식 등)은 System.Object를 상속 받습니다.
그러므로 object는 모든 자료형의 조상이므로 모든 형식의 값을 할당 받을 수 있습니다.
object 참조형식에 속합니다.
private void button1_Click(object sender, EventArgs e) { object a = 100; // int object b = 3.14; // double object c = "Hello"; // string object d = true; // bool object ee = DateTime.Now; // 구조체 object f = new Point(); // 클래스 } |
object형식은 모든 값을 받을 수 있지만, 연산을 위해서는 필요한 형식으로 변환을 해야 합니다.
Object 형식을 값 형식으로 변환하는 것을 박싱(boxing)이라 하며, 값 형식은 object 형식으로 변환하는 것을 언박싱(unboxing)이라 합니다.
object a = 100; int b = 200; int c = a + b; // 오류 |
object 형식을 int로 변환하기 위해서는 캐스팅(castring)이 필요합니다.
object a = 100; int b = 200; int c = (int)a + b; // Type casting |
박싱과 언박싱(Boxing & Unboxing)
박싱(boxing)은 값 형식을 object 형식 또는 이 값 형시에서 구현된 인터페이스 형식으로 변환하는 것을 말합니다.
int a = 100; object b = a; // Boxing int c = (int)b; // Unboxing |
Boxing을 하게 되면 개체를 관리되는 힙(heap)에 저장하고, Unboxing을 하면 개체가 값 형식으로 변환됩니다.
Boxing은 암시적이며 unboxing은 명시적입니다.
반응형