

using System;
namespace ShallowCopy
{
class MyClass
{
public int MyField1;
public int MyField2;
}
class MainApp
{
static void Main(string[] args)
{
MyClass source = new MyClass();
source.MyField1 = 10;
source.MyField2 = 20;
MyClass target = source;
target.MyField2 = 30;
Console.WriteLine($"source: {source.MyField1} {source.MyField2}");
Console.WriteLine($"target: {target.MyField1} {target.MyField2}");
}
}
}
[실행 결과]
source: 10 30
target: 10 30
using System;
namespace DeepCopy
{
class MyClass
{
public int MyField1;
public int MyField2;
public MyClass DeepCopy()
{
MyClass newCopy = new MyClass();
newCopy.MyField1 = this.MyField1;
newCopy.MyField2 = this.MyField2;
return newCopy;
}
}
class MainApp
{
static void Main(string[] args)
{
MyClass source = new MyClass();
source.MyField1 = 10;
source.MyField2 = 20;
MyClass target = source.DeepCopy();
target.MyField2 = 30;
Console.WriteLine($"source: {source.MyField1} {source.MyField2}");
Console.WriteLine($"target: {target.MyField1} {target.MyField2}");
}
}
}
[실행 결과]
source: 10 20
target: 10 30
▪ 참고: Hello Fruit! - this
▪ 사진 출처: DevStory