الفرق بين == و === في C#
مرحبًا بالجميع! أنا مبتدئ في C# (كنت أكتب سابقًا بلغة JavaScript) وواجهت صعوبة في فهم عوامل المقارنة. في JS يوجد مقارنة صارمة === وغير صارمة ==. في C# أرى فقط ==، لكنني سمعت أن هناك Equals() و ReferenceEquals(). ومع ذلك، لا أستطيع العثور على معلومات حول === — هل هو غير موجود ببساطة؟ أم أنه بناء جملة فاتني؟
جربت الكود التالي:
int a = 5;
int b = 5;
object objA = a;
object objB = b;
Console.WriteLine(a == b); // True
Console.WriteLine(objA == objB); // False (مقارنة المراجع؟)
Console.WriteLine(objA.Equals(objB)); // True (مقارنة القيم؟)
توقعت أن objA == objB سيعطي True، لكنني حصلت على False. ما الفرق بين == للأنواع القيمية والمرجعية؟ هل يوجد في C# ما يعادل === من JS للمقارنة الصارمة دون التغليف؟ أم يجب دائمًا استخدام