Avatar ·

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

مرحباً بالجميع! أنا مطور C# مبتدئ وقد واجهت مشكلة في نسخ الكائنات. لدي كلاس Person يحتوي على عدة كائنات متداخلة، مثل Address. عندما أحاول نسخ الكائن عن طريق التعيين البسيط (simple assignment)، أحصل على مرجع (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