TGViewer
C# Geeks (.NET) C# Geeks (.NET) @csharpgeeks · 548 subscribers
Post #45 98
❓ دنیای پیچیده:
مقایسه Reference Typeها

اینجاست که داستان جالب میشه! برای Reference Typeها (مثل class)، اپراتور == به صورت پیش‌فرض، محتوای داخلی آبجکت‌ها رو مقایسه نمی‌کنه.

در عوض، آدرس اون‌ها در حافظه رو مقایسه می‌کنه. یعنی از خودش می‌پرسه: "آیا این دو متغیر، به یک آبجکت یکسان در حافظه اشاره می‌کنن؟"

یادتونه گفتیم Reference Type مثل کلید یه خونه‌ست؟ اینجا == چک نمی‌کنه که آیا دو تا خونه دکوراسیون یکسانی دارن یا نه. فقط چک می‌کنه که آیا این دو تا کلید، برای یک خونه‌ی یکسان هستن یا برای دو تا خونه‌ی جدا که فقط شبیه هم ساخته شدن.

مثال کلاس Dude رو ببینید:

public class Dude
{
public string Name;
public Dude(string n) { Name = n; }
}

// ...

// ما دو تا آبجکت جداگانه در حافظه می‌سازیم که هر دو اسمشون "John" هست
Dude d1 = new Dude("John");
Dude d2 = new Dude("John");

// اینجا d3 کلید خونه‌ی d1 رو می‌گیره، خونه جدیدی ساخته نمیشه
Dude d3 = d1;

// آیا d1 و d2 به یک آبجکت یکسان اشاره می‌کنند؟ نه!
// (دو تا خونه جدا ولی شبیه به هم)
Console.WriteLine(d1 == d2); // خروجی: False

// آیا d1 و d3 به یک آبجکت یکسان اشاره می‌کنند؟ بله!
// (دو تا کلید برای یک خونه)
Console.WriteLine(d1 == d3); // خروجی: True
More from @csharpgeeks
  1. Sep 22, 2026یه مدتی قراره از دنیای NET. فاصله بگیرم، چون وقتشه برم سربازی. راستش نمیدونم این مدت رو چج…
  2. Sep 20, 2026🔥 حالا مشکل اصلی: Alert Storm فرض کن Database از دسترس خارج شده. ۱۰۰ Pod داری. هر Pod می‌…
  3. Sep 20, 2026🚨 طراحی سیستم Monitoring و Alerting در یک سیستم بزرگ فرض کن ساعت ۳ صبح است. سیستم شما با…
  4. Sep 19, 2026#Engineering_Leadership تصمیم نگرفتن هم یک تصمیم است یه چیز عجیب توی تیم‌های مهندسی: گاهی…
  5. Sep 19, 2026☑ چک‌لیست آماده‌سازی تیم، فرایندها و زیرساخت برای توسعه با AI توجه: هیچ چک‌لیستی جهان‌شمول…
  6. Sep 19, 2026📌پایان یک انتظار طولانی: اعتبارسنجی ناهمگام (Async Validation) در NET 11.
Threads Profile ViewerView any public Threads profile without an account.Open ThreadLook →Writing with AI? Make it sound human.Metric37 rewrites AI drafts so they read naturally. Free AI detector, 1,500 words free.Try Metric37 →