RSS구독하기:SUBSCRIBE TO RSS FEED
즐겨찾기추가:ADD FAVORITE
글쓰기:POST
관리자:ADMINISTRATOR
.Net  2010.12.09 18:55
C#이 생긴지 워낙 오래도 됐고, 인터넷에 찾아보면 관련내용이 엄청나게 많지만 개인 정리를 위해서 적습니다.

Boxing은 값(ValueType)을 참조타입(ReferenceType)으로 묵시적(implicit)으로 변환합니다.
Unboxing은 참조타입(ReferenceType)을 값타입(ValueType)으로 명시적(explicit)으로 변환합니다.

값타입은 Stack Memory 영역입니다.
참조타입은 Heap Memory 영역입니다.

    class TestClass {}

    class Program
    {
        static void Main()
        {
            int orignalVal = 999;            
            object o = orignalVal;  // boxing
            int newVal = (int)o;    // unboxing (다른 형으로 변환시 Error!!)

            if (o is int)
                Console.WriteLine(o.GetType());


            object obj = new TestClass();   // boxing
            TestClass tc = (TestClass)obj;  // unboxing
            if (obj is TestClass)
                Console.WriteLine("{0} is A.", obj.GetType());
            

            string str = 999.ToString(); // boxing 발생
            Console.WriteLine(str);
        }
    }

주의! 1. 성능에 영향을 줍니다. 자세한 내용은 MSDN 링크 참고 
         2. Unboxing을 사용해서 원래의 Type으로 돌아올 때는 올바른 형(Type)으로 변환해 주어야 한다.


더 자세히 설명된 글 링크

이해도 테스트
저작자 표시 비영리
신고

'.Net' 카테고리의 다른 글

C++/CLI  (0) 2010.12.10
Abstract 와 Interface  (0) 2010.12.09
Boxing 과 Unboxing  (0) 2010.12.09
Advanced C# - 한빛미디어  (1) 2010.12.09
C# 언어 명세서 (CSharp Language Specification)  (0) 2010.12.09
프로갱호:어제의 나보다 더 나아질수 있는 방법을 찾아서~!
어제의 나보다 더 나아질수 있는 방법을 찾아서~!
분류 전체보기 (61)
My Life (13)
Information for Dev (2)
Conference (1)
C Programming (0)
C++ Programming (2)
.Net (14)
Unity3D (14)
Script (1)
Architecture (1)
Design Pattern (0)
Game Technolog (2)
Visual Studio (0)
Network (1)
Financial Technology (0)
All Link (10)
«   2017/12   »
          1 2
3 4 5 6 7 8 9
10 11 12 13 14 15 16
17 18 19 20 21 22 23
24 25 26 27 28 29 30
31            
  1. coach usa  2013
    h..
  2. cheap nike shoes  2013
    h..
  3. cheap oakley sunglasses  2013
    ..
  4. prada  2013
    ..
  5. supra skytop  2013
    ..

티스토리 툴바