浅いコピー -
浅いコピーとは、オブジェクトの「メイン」部分をコピーすることを指しますが、内部部分はコピーしません オブジェクト。
「内部オブジェクト」は、元のオブジェクトとそのコピーの間で共有されます。
浅いコピーの問題は、2 つのオブジェクトが独立していないことです。 1 つのオブジェクトを変更すると、その変更がもう 1 つのオブジェクトに反映されます。
ディープ コピー −
ディープ コピーは、オブジェクトの完全に独立したコピーです。オブジェクトをコピーすると、 オブジェクト構造全体をコピーします。
一方のオブジェクトを変更すると、その変更はもう一方のオブジェクトには反映されません。
class Program{ static void Main(string[] args){ //Shallow Copy ShallowCopy obj = new ShallowCopy(); obj.a = 10; ShallowCopy obj1 = new ShallowCopy(); obj1 = obj; Console.WriteLine("{0} {1}", obj1.a, obj.a); // 10,10 obj1.a = 5; Console.WriteLine("{0} {1}", obj1.a, obj.a); //5,5 //Deep Copy DeepCopy d = new DeepCopy(); d.a = 10; DeepCopy d1 = new DeepCopy(); d1.a = d.a; Console.WriteLine("{0} {1}", d1.a, d.a); // 10,10 d1.a = 5; Console.WriteLine("{0} {1}", d1.a, d.a); //5,10 Console.ReadLine(); } } class ShallowCopy{ public int a = 10; } class DeepCopy{ public int a = 10; }
10 10 5 5 10 10 5 10
以上がC# の浅いコピーとは何ですか?また、C# の深いコピーとの違いは何ですか?の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。