728x90
갑자기 드는 생각인데 영어권 사람들은 코딩 배우기가 정말정말정말 쉽겠다. 문서 찾을 때도 그냥 보고 읽으면 되니까... 부럽다.
· 얕은 복사 (Shallow Copy)
객체의 참조를 복사하는 것.
class MyClass
{
public int name;
public int age;
}
static void Main(string[] args)
{
MyClass myClass = new MyClass();
myClass.name= 1;
myClass.age= 2;
MyClass yourClass = myClass;
yourClass.name= 100;
Console.WriteLine($"{myClass.name} {myClass.age}");
Console.WriteLine($"{yourClass.name} {yourClass.age}");
}
myClass와 yourClass가 같은 값을 갖게 된다.
· 깊은 복사 (Deep Copy)
별도의 메모리 영역(힙 영역)에 복사한 객체를 넣어 기존 값과 다른 새로운 객체를 만드는 것.
class MyClass
{
public int name;
public int age;
public MyClass DeepCopy()
{
MyClass newCopy = new MyClass();
newCopy.name = name;
newCopy.age = age;
return newCopy;
}
}
static void Main(string[] args)
{
MyClass myClass = new MyClass();
myClass.name = 1;
myClass.age = 2;
MyClass yourClass = myClass.DeepCopy();
yourClass.name = 100;
Console.WriteLine($"{myClass.name} {myClass.age}");
Console.WriteLine($"{yourClass.name} {yourClass.age}");
}
myClass와 yourClass가 다른 값을 갖게 된다.
728x90
'언어 > C#' 카테고리의 다른 글
[C#] temp를 사용한 자리 바꿔치기 (0) | 2022.04.25 |
---|---|
[C#] CS0122 보호 수준 때문에 액세스할 수 없습니다 (0) | 2022.04.25 |
[C#] overloading과 overriding (0) | 2022.04.25 |
[C#] ReadLine 문자열 입력 받기 (0) | 2022.04.25 |
[C#] 상수, 열거 - 가위바위보 개선 (0) | 2022.04.25 |