Clonage profond d'objets en C# : comment faire une copie complète ?
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 contenant des types référence (par exemple, des listes et d'autres classes). Lorsque j'assigne une instance à une autre, les modifications dans la copie affectent l'original. Je veux créer une copie totalement indépendante de l'objet afin de pouvoir la modifier sans changer les données d'origine.
Voici un exemple de code qui illustre le problème :
```csharp
public class Person
{
public string Name { get; set; }
public List Hobbies { get; set; }
}
public class Program
{
public static void Main()
{
Person original = new Person { Name = "Иван", Hobbies = new List { "Чтение", "Плавание" } };
Person shallowCopy = original; // C'est une copie superficielle
shallowCopy.Name = "Петр";
shallowCopy.Hobbies.Add("Бег");
Console.WriteLine(original.Name); // Affiche "Иван" (le nom n'a pas changé)
Console.WriteLine(string.Join(", ", original.Hobbies));
}
}
```