Maison > développement back-end > Tutoriel C#.Net > Qu'est-ce que la copie superficielle et en quoi est-elle différente de la copie profonde en C# ?

Qu'est-ce que la copie superficielle et en quoi est-elle différente de la copie profonde en C# ?

王林
Libérer: 2023-09-06 19:41:09
avant
650 Les gens l'ont consulté

什么是浅复制以及它与 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.

Exemple

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;
}
Copier après la connexion

Sortie

10 10
5 5
10 10
5 10
Copier après la connexion

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!

source:tutorialspoint.com
Déclaration de ce site Web
Le contenu de cet article est volontairement contribué par les internautes et les droits d'auteur appartiennent à l'auteur original. Ce site n'assume aucune responsabilité légale correspondante. Si vous trouvez un contenu suspecté de plagiat ou de contrefaçon, veuillez contacter admin@php.cn
Tutoriels populaires
Plus>
Derniers téléchargements
Plus>
effets Web
Code source du site Web
Matériel du site Web
Modèle frontal