Skip to content

Instantly share code, notes, and snippets.

@geniikw
Last active December 23, 2019 15:20
Show Gist options
  • Select an option

  • Save geniikw/0d576ee47a8524b2880ded29c79dc29d to your computer and use it in GitHub Desktop.

Select an option

Save geniikw/0d576ee47a8524b2880ded29c79dc29d to your computer and use it in GitHub Desktop.
public class ThisIsClass{  
    public int power = 0;  
}

public struct ThisIsStruct{
    public int power = 0;
}

public static class Program{
  public static void Main(){
      var 클래스 = new ThisIsClass();
      var 구조체 = new ThisIsStruct();
      
      클래스더하기(클래스);
      구조체더하기(구조체);
      
      Console.Log(클래스.power); // 1출력
      Console.Log(구조체.power); // 0출력
      //힘의 차이가 느껴지십니까??
  }
  
  public static void 클래스더하기(ThisIsClass object){//참조값이 전달됨
    object.power += 1;  //클래스는 Heap영역. 더한값이 유지됨.
  }
  public static void 구조체더하기(ThisIsStruct value){//값복사가 일어남
    value.power += 1;  //구조체는 stack영역. 복사한 값에 더해져 아래 중괄호가 끝나면 없어짐.
  }
}
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment