박싱
[C#] Boxing / Unboxing (1)
1. 핵심 정리 using System; class Program { static void Main() { int[] a1 = {1, 2, 3}; object o1 = a1; int[] a2 = (int[])o1; Console.WriteLine(a2[0]); } } 먼저 5~9번 라인을 보자. 먼저 int형의 배열을 만들었다. 배열은 C#에서 참조타입이므로 Heap에 생성되었을 것이다. 다음 object는 모든 타입의 기반 타입이므로 o1도 a1과 같은 Heap을 바라볼 것이다. 마지막으로 위의 obejct타입을 다시 배열로 캐스팅하여 담을 수도 있다. 그림으로 나타내면 아래와 같다. 모두 같은 메모리를 바라보기에 만약 중간에서 a1이나 o1의 값을 바꿔도 a2를 출력해보면 바뀐 값으로 출력되는 것을 ..