TGViewer
Software Philosophy Software Philosophy @softwarephilosophy · 3.48K subscribers
Post #2355 1.56K
شیء (Object) در سی‌شارپ

#csharp_for_beginners

در زبان سی‌شارپ، یک شیء نماینده‌ی یک نمونه (instance) از یک نوع است، که این نوع می‌تواند یک کلاس (class) یا یک ساختار (struct) باشد. یک کلاس یا ساختار مانند نقشه‌ای (blueprint) است که مشخص می‌کند نوع، چه داده‌ها و رفتارهایی دارد، و شیء بخشی از حافظه است که مطابق این نقشه ایجاد و پیکربندی می‌شود. برنامه ممکن است چندین شیء از یک کلاس ایجاد کند.

شیء‌ها همچنین می‌توانند در متغیرها، آرایه‌ها یا مجموعه‌ها ذخیره شوند. کد مشتری (client code) از این متغیرها برای فراخوانی متدها و دسترسی به خصوصیات عمومی شیء استفاده می‌کند.

نمونه‌های ساختار (Struct) و کلاس (Class)

کلاس‌ها
- کلاس‌ها نوع ارجاعی (reference type) هستند.
- متغیر یک شیء کلاس آدرس حافظه آن شیء در heap مدیریت‌شده را نگه می‌دارد.
- اگر یک متغیر کلاس به متغیر دیگر نسبت داده شود، هر دو متغیر به همان شیء اشاره می‌کنند.
- نمونه‌های کلاس معمولاً با عملگر new ایجاد می‌شوند.

مثال:
Person person1 = new Person("Leopold", 6);
Person person2 = person1;
person2.Name = "Molly";
// حالا person1.Name هم "Molly" است، زیرا هر دو به یک شیء اشاره دارند


استراکت‌ها
- استراکت‌ها نوع مقداری (value type) هستند.
- متغیر یک struct، یک کپی کامل از شیء را نگه می‌دارد.
- نمونه‌های struct می‌توانند با new ایجاد شوند، اما الزامی نیست.

مثال:
Person p1 = new Person("Alex", 9);
Person p2 = p1;
p2.Name = "Spencer";
// p1 تغییر نکرده است، زیرا p2 کپی مستقل است


نکات مهم حافظه
- حافظه‌ی کلاس‌ها در managed heap ذخیره می‌شود و توسط garbage collector بازیابی می‌شود.
- حافظه‌ی structها معمولاً در stack ذخیره می‌شود و هنگام خروج از محدوده از بین می‌رود.
- این تفاوت دلیل رفتار متفاوت در کپی و مقایسه بین کلاس و struct است.

🔗 مطلب کامل را در این لینک می‌توانید مطالعه کنید.

⁉️ برای بحث و تبادل نظر فنی در مورد این پست، نظرات خود را با ما در قسمت کامنت‌ها به اشتراک بگذارید.

کانال تلگرام:
@SoftwarePhilosophy

______
Docs Objects - create instances of types - C# C# uses a class or struct definition to define types of objects. In an object-oriented language such as C#, a program consists of objects interacting dynamically.
  • ❤ 3
  • 👍 1
More from @softwarephilosophy
  1. Sep 27, 2026نگو JEV بگو System One! دنیل کانمن (Daniel Kahneman) توی کتاب معروفش «تفکر، سریع و کند» (T…
  2. Sep 23, 2026بازنویسی کل GitHub Copilot Runtime با Rust 🔶 حدود ۱۲۰،۰۰۰ دلار هزینه توکن و سه هفته وقت ی…
  3. Sep 15, 2026ورک‌شاپ «AI Agents in C# (MAF)» در این ورک‌شاپ به بررسی امکانات جدید برنامه‌نویسی با کتابخ…
  4. Sep 12, 2026کد مدریت شده (Managed Code) در دات‌نت یعنی چی؟ ▫️به زبان ساده: کد مدریت شده (Managed Code)…
  5. Sep 5, 2026آشنایی با Attributeها در سی‌شارپ در سی شارپ، Attributeها برای اضافه کردن metadata یا اطلاع…
  6. Aug 25, 2026اگر در دات نت Agent، MCP Server یا ابزارهای مبتنی بر هوش مصنوعی توسعه میدهی، این پروژه میت…
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 →