Midسختی 3 از ۵· در 70٪ مصاحبههای این حوزه پرسیده شده
تفاوت == و Equals() در C# چیست؟
☆نشان کردنپاسخ کوتاه
== معمولاً مقایسه مقدار یا Reference است؛ Equals() برای مقایسه منطقی Objectها استفاده میشود.
پاسخ کامل
برای Value Typeها، == و Equals() هر دو مقدار را مقایسه میکنند. برای Reference Typeها، == بهطور پیشفرض Referenceها (آدرسها) را مقایسه میکند مگر Override شده باشد، در حالی که Equals() قابل Override است تا مقایسه منطقی/محتوایی دو Object را انجام دهد (مثلاً در recordها بهصورت خودکار این کار انجام میشود).
اشتباه رایج
❌ فرض کردن اینکه == همیشه محتوای دو Object را مقایسه میکند، در حالی که برای کلاسهای معمولی فقط Reference را مقایسه میکند.
