#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
______