مقایسه مقدار در برابر مقایسه آدرس!
فکر میکنید اپراتور == همیشه مقادیر رو با هم مقایسه میکنه؟ اگه دو تا شیء داشته باشیم که محتوای داخلیشون یکسانه، آیا با هم برابرن؟
جواب تو سیشارپ همیشه "بله" نیست! این یکی از اون تلههای کلاسیکه که ریشهش مستقیم به تفاوت Value Type و Reference Type برمیگرده. بیاید این موضوع مهم رو یک بار برای همیشه روشن کنیم.
✅ دنیای ساده: مقایسه Value Typeها
برای Value Typeها (مثل int, struct, bool)، اپراتور == دقیقاً همون کاری رو میکنه که انتظار دارید: مقدار واقعی داخل متغیرها رو با هم مقایسه میکنه. ساده و قابل پیشبینی.
int x = 5;
int y = 10;
int z = 5;
// آیا مقدار x با y برابره؟ نه.
Console.WriteLine(x == y); // خروجی: False
// آیا مقدار x با z برابره؟ بله.
Console.WriteLine(x == z); // خروجی: True