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영역. 복사한 값에 더해져 아래 중괄호가 끝나면 없어짐.
}
}
Last active
December 23, 2019 15:20
-
-
Save geniikw/0d576ee47a8524b2880ded29c79dc29d to your computer and use it in GitHub Desktop.
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment