블로그 이미지
Magic_kit
study 관련자료를 한곳으로 자기 개발 목적으로 재태크 재무 관리 목적으로 일상생활의 팁을 공유 하기 위하여 블로그를 개설 하였습니다.

calendar

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

Category

Recent Post

Recent Comment

Archive

2009. 8. 17. 13:32 .Net Project/.Net C#
반응형

 

 값 형식을 기반으로 한 변수에는 값이 직접 포함됩니다.
 
값 형식 변수 하나를 다른 변수에 대입하면 변수에 포함된 값이 복사됩니다. 이는 참조
형식 변수를 대입하는 경우와 다릅니다.
참조 형식 변수의 경우 개체 자체가 아니라 개체에 대한 참조가 복사됩니다.

모든 값 형식은 암시적으로 System.ValueType에서 파생됩니다.

참조 형식과 달리 값 형식에서 새 형식을 파생시킬 수 없습니다. 그러나 구조체는 참조 형식과 마찬가지로 인터페이스를 구현할 수 있습니다.

참조 형식과 달리 값 형식에는 null 값이 포함될 수 없습니다. 그러나 nullable 형식 기능을 사용하면 값 형식을 null에 대입할 수 있습니다.


 참조 형식 변수는 데이터를 직접 포함하지 않고 데이터에 대한 참조를 포함합니다.
 
 값으로 참조-형식 매개 변수를 전달할 경우 클래스 멤버 값과 같은 참조에서 가리키는
 데이터를 변경할 수 있으나 참조 값 자체를 변경할 수는 없습니다. 즉, 같은 참조를 사용
 하여 새 클래스에 메모리를 할당하고 이를 블록 밖에서 지속하도록 할 수 없습니다.
 그렇게 하려면 ref 또는 out 키워드를 사용하여 매개 변수를 전달해야 합니다.
 편의상 다음 예제에서는 ref를 사용 하도록 합니다.




using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;

namespace 값타입과참조타입
{
    class Program
    {
        static void Main(string[] args)
        {
            //값형식 : value Type : 닷넷이 관리하는 메모리의 스택에 보관 
            int i = 1234;
            //참조 형식 : Reference : 닷넷의힙 메모리에 보관
            string s = "안녕\0하세요"; //리터럴(Literal)
            Console.WriteLine("{0}",s);

            //박싱Boxing과 언박싱UnBoxing
            string su = "1234";
            int num = Convert.ToInt32(su); // 힙 -> 스택 : 언박싱 ~
            su = i.ToString(); //스택 -> 힙 :Boxing
            su = null; //가비지 컬렉터 엔진 활동
            //구조체는 값형식, 클래스 참조형식 
        }
    }
}

반응형

'.Net Project > .Net C#' 카테고리의 다른 글

85장 추가연산자  (0) 2009.08.17
84장 박싱&언박싱(boxing Unboxing)  (0) 2009.08.17
82장 널값표현(Nullable)  (0) 2009.08.17
81장 명령인수갯수  (0) 2009.08.17
34. Sort 선택정렬 Ex)  (0) 2009.08.10
posted by Magic_kit