C# 기초 정리 — 값 형식과 참조 형식

1. 값 형식(Value Type) - struct

값 형식은 변수에 값 자체가 저장되는 형식이다.

대표적인 예시:

예제

struct Name
{
    public int a;
}

Name n1 = new Name();
n1.a = 10;

Name n2 = n1;
n2.a = 99;

Console.WriteLine(n1.a);
Console.WriteLine(n2.a);

실행 결과

10
99

실행 과정

  1. n1을 생성하고 n1.a에 10을 저장한다.
  2. Name n2 = n1;에서 n1의 구조체 값이 n2로 복사된다.
  3. n2.a = 99;로 n2의 값을 변경한다.
  4. n2는 복사된 별개의 값을 가지고 있으므로 n1.a에는 영향이 없다.

핵심: 구조체를 대입하면 값이 복사된다.


2. 참조 형식(Reference Type) -class