반응형
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은 명시적입니다.
반응형
'C# > C#_기초강의' 카테고리의 다른 글
(C#) 자료 형식 변환(2): 문자열을 숫자로, 숫자를 문자열로 변환하기 (0) | 2023.04.20 |
---|---|
(C#) 자료 형식 변환(1) type conversion (1) | 2023.04.20 |
(C#) 자료형: 암시적 형식 지역 변수 선언: var (0) | 2023.04.20 |
(C#) 자료형: string 문자열 형식 (0) | 2023.04.20 |
(C#) 자료형: char 문자형 (0) | 2023.04.20 |