Post

[C#] 값형과 참조형

[C#] 값형과 참조형

값형과 참조형


C#에서 변수가 데이터를 저장하는 방식을 나타낸다.

값형(Value Type)

  • 값형은 변수에 값을 직접 저장하며, 변수가 실제 데이터를 보유하고 있으며, 해당 변수를 다른 변수에 할당하거나 전달할 때는 값이 복사된다.
  • 값형 변수의 수정은 해당 변수의 값만 변경하므로 다른 변수에 영향을 주지 않는다.
  • int, float, double, bool 등의 기본 데이터 타입들이 값형에 해당한다.
    1
    2
    3
    4
    5
    6
    
    int a = 10;
    int b = a;
    b = 20;
    
    Console.WriteLine(a); // 출력 결과: 10
    Console.WriteLine(b); // 출력 결과: 20
    

참조형(Reference Type)

  • 참조형은 변수가 데이터에 대한 참조(메모리 주소)를 저장한다.
  • 변수가 실제 데이터를 가리키는 참조를 갖고 있으며, 해당 변수를 다른 변수에 할당하거나 전달할 때는 참조가 복사된다.
  • 참조형 변수의 수정은 동일한 데이터를 가리키고 있는 다른 변수에 영향을 줄 수 있다.
  • 클래스(Class), 배열(Array), 인터페이스(Interface) 등이 참조형에 해당한다.
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    
    class MyClass
    {
        public int Value;
    }
    
    MyClass obj1 = new MyClass();
    obj1.Value = 10;
    
    MyClass obj2 = obj1; // obj2는 obj1과 동일한 객체를 참조
    
    obj2.Value = 20;
    
    Console.WriteLine(obj1.Value); // 출력 결과: 20
    

값형은 실제 데이터를 변수에 저장하고, 참조형은 데이터에 대한 참조를 변수에 저장한다. 값형은 변수 간의 값 복사가 이루어지고, 참조형은 변수 간의 참조 복사가 이루어진다. 값형은 변수가 독립적으로 데이터를 가지며, 참조형은 변수가 동일한 데이터를 참조한다.

This post is licensed under CC BY 4.0 by the author.