في C#: ما الفرق بين `==` و `Equals()` عند مقارنة الكائنات؟
مرحبًا أيها الزملاء! أنا مطور C# مبتدئ وقد واجهت بعض الالتباس. لدي class بسيط اسمه Person مع خاصيتين: Name و Age. قمت بإنشاء مثيلين من هذا الـ class بنفس قيم الحقول. عندما أقارنهم باستخدام `==`، تكون النتيجة `false`. ولكن إذا استخدمت method `Equals()`، فالنتيجة أيضًا `false`. كنت أتوقع أن يكونا متساويين لأن البيانات متطابقة. إليك الكود:\n\n```csharp\npublic class Person\n{\n public string Name { get; set; }\n public int Age { get; set; }\n}\n\nclass Program\n{\n static void Main()\n {\n Person p1 = new Person { Name = "Alice", Age = 30 };\n Person p2 = new Person { Name = "Alice", Age = 30 };\n\n Console.WriteLine(p1 == p2); // false\n Console.WriteLine(p1.Equals(p2)); // false\n }\n}\n```