Como fazer deep copy de um objeto em .NET (C#)?
Olá a todos! Sou um desenvolvedor C# iniciante e enfrentei um problema com cópia de objetos. Tenho uma classe Person com vários objetos aninhados, por exemplo, Address. Quando tento copiar o objeto através de uma simples atribuição, obtenho uma referência para o mesmo objeto, e não uma cópia dele. Ao alterar as propriedades na "cópia", o objeto original também é modificado. \n\nAqui está um exemplo de código que ilustra o problema:\n\n```csharp\npublic class Address\n{\n public string City { get; set; }\n public string Street { get; set; }\n}\n\npublic class Person\n{\n public string Name { get; set; }\n public int Age { get; set; }\n public Address Address { get; set; }\n}\n\n// Uso\nvar original = new Person \n{ \n Name = "Ivan", \n Age = 30, \n Address = new Address { City = "Moscou", St