Maison > Article > développement back-end > Qu’est-ce que la copie superficielle et en quoi est-elle différente de la copie profonde en C# ?
Copie superficielle −
La copie superficielle fait référence à la copie de la partie "principale" d'un objet, mais pas à la copie des parties internes objets.
Les "objets internes" sont partagés entre l'objet original et sa copie.
Le problème avec la copie superficielle est que les deux objets ne sont pas indépendants si vous. Modifiez un objet et les modifications seront reflétées dans l’autre objet.
Copie profonde −
Une copie profonde est une copie complètement indépendante d'un objet. Si nous copions notre objet, copierait toute la structure de l'objet.
Si vous modifiez un objet, le changement ne sera pas reflété dans l'autre objet.
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
Ce qui précède est le contenu détaillé de. pour plus d'informations, suivez d'autres articles connexes sur le site Web de PHP en chinois!