Avatar ·

كيفية عمل نسخة عميقة (deep copy) لكائن في .NET (C#)؟

مرحباً بالجميع! أنا مطور C# مبتدئ واجهت مشكلة في نسخ الكائنات. لدي class Person يحتوي على عدة كائنات متداخلة، مثل Address. عندما أحاول نسخ الكائن عن طريق الإسناد البسيط، أحصل على reference لنفس الكائن وليس نسخة منه. عند تغيير الخصائص في "النسخة"، يتغير الكائن الأصلي أيضاً. إليك مثال كود يوضح المشكلة: ```csharp public class Address { public string City { get; set; } public string Street { get; set; } } public class Person { public string Name { get; set; } public int Age { get; set; } public Address Address { get; set; } } // الاستخدام var original = new Person { Name = "إيفان", Age = 30, Address = new Address { City = "موسكو", St