Avatar ·

C# में गहरी क्लोनिंग: पूरी कॉपी कैसे बनाएं?

सभी को नमस्कार! मैं C# में नया हूँ और ऑब्जेक्ट कॉपी करने में समस्या का सामना कर रहा हूँ। मेरे पास एक class है जिसमें reference types (जैसे lists और अन्य classes) शामिल हैं। जब मैं एक instance को दूसरे को assign करता हूँ, तो copy में किए गए बदलाव original को प्रभावित करते हैं। मैं पूरी तरह से स्वतंत्र ऑब्जेक्ट कॉपी बनाना चाहता हूँ, ताकि मैं मूल डेटा को बदले बिना इसे modify कर सकूँ।\n\nयहाँ एक उदाहरण कोड है जो समस्या दिखाता है:\n\n```csharp\npublic class Person\n{\n public string Name { get; set; }\n public List Hobbies { get; set; }\n}\n\npublic class Program\n{\n public static void Main()\n {\n Person original = new Person { Name = "Иван", Hobbies = new List { "Чтение", "Плавание" } };\n Person shallowCopy = original; // यह एक shallow copy है\n\n shallowCopy.Name = "Петр";\n shallowCopy.Hobbies.Add("Бег");\n\n Console.WriteLine(original.Name); // "Иван" प्रिंट करेगा (नाम नहीं बदला)\n Console.WriteLine(string.Join(", ", original.Hobbies)); // "Чтение, Плавание, Бег" प्रिंट करेगा (list बदल गई)\n }\n}\n```