본문 바로가기
C#/C# 강의 정리

C# mutable type, immutable type

by 민트코코넛 2020. 12. 27.
728x90
반응형

§ mutable & immutable §

◈ mutable type 특징

- 변수가 생성이 되면, 값을 변경할 수 있다.

  1. 스택 메모리에 공간과 값을 생성
  2. 재 선언할때마다 값을 덮어씌워서 저장한다.

class MyClass
{
    static void Main(string[] args)
    {
        int a = 1;
        a = 3;
        Console.WriteLine(a);
    }
}

◈ immutable type 특징
- 변수가 생성이 되면, 값을 변경할 수 없다.
  1. 스택에 변수 공간 생성
  2. 힙 메모리에 값 공간 생성, 참조하는 형식
  3. 변수의 값을 변경하면, 힙의 원래 값이 변경되는 것이 아니라
  4. 힙에 또 다른 값의 공간을 생성하여 참조한다.

class MyClass
{
    static void Main(string[] args)
    {
        string b = "aaa";   // 참조 형식
        b = "ccc";
        for (int i = 0; i < 100000 ; i++)
        {
        b = b + i.ToString();
        }
        // 힙 메모리가 조건을 만족할때까지 계속 소모된다.
           
        // 해결 방법
        StringBuilder b = new StringBuilder();
        // string빌더를 활용한다.
        // StringBuilder : 값의 변경이 가능한 문자열 class 
        for (int i = 0; i < 100000; i++)
        {
        	b.Append(i.ToString());
        }
        string b1 = b.ToString();
      //Console.WriteLine(b);
        Console.WriteLine(b1);
    }
}

 

< 추가 공부 필요 >

'C# > C# 강의 정리' 카테고리의 다른 글

C# 배열  (0) 2020.12.27
C# 함수  (0) 2020.12.27
C# 문자열  (0) 2020.12.27
C# 연산자  (0) 2020.12.25
C# 기초 정리 (정의, 변수)  (0) 2020.12.25