Avatar ·

Clonage profond d'objets en C# : comment copier correctement un objet complexe avec toutes ses références imbriquées ?

Bonjour à tous ! Je suis débutant en C# et j'ai rencontré un problème lors de la copie d'objets. J'ai une classe `Person` qui contient des champs de référence, par exemple `List
`. Quand j'essaie de faire une copie par simple affectation (`var copy = original;`), les modifications dans `copy` affectent `original`. Je comprends qu'il s'agit d'une copie superficielle (shallow copy) et que j'ai besoin d'un clonage profond (deep clone). J'ai essayé d'implémenter `ICloneable`, mais il crée une copie superficielle. J'ai essayé de copier manuellement chaque champ, mais c'est horrible quand il y a beaucoup d'objets et qu'ils sont imbriqués. Voici un exemple de mon code : ```csharp public class Address { public string Street { get; set; } public string City { get; set; } } public class Person { public string Name { get; set; } public int Age { get; set; } public List
Addresses { get; set; } = new List
(); } // Utilisation : var person1 = new Person { Name = "Ivan", Age = 30 }; person1.Addresses.Add(new Address { Street