Avatar ·

Clonagem profunda de objetos em C#: como fazer uma cópia completa?

Olá a todos! Sou novo em C# e encontrei um problema ao copiar objetos. Tenho uma classe que contém tipos por referência (por exemplo, listas e outras classes). Quando atribuo uma instância a outra, as alterações na cópia afetam o original. Quero criar uma cópia completamente independente do objeto, para poder modificá-la sem alterar os dados originais. Aqui está um exemplo de código que demonstra o problema: ```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; // Isso é uma cópia superficial shallowCopy.Name = "Петр"; shallowCopy.Hobbies.Add("Бег"); Console.WriteLine(original.Name); // Exibirá "Иван" (o nome não mudou) Console.WriteLine(string.Join(", ", original.Hobbies)); } } ```