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
No answers yet.
Connectez-vous pour laisser une réponse