نوع داده Struct Type
نام دوره: زبان سی شارپ مقدماتی
نویسنده: علی مقدم جاه (مدرس دوره)
نوع داده Struct Type
در پست آموزش انواع Data Type در زبان برنامهنویسی سیشارپ آشنا شدید و متوجه شدید که struct type ها در مجموعه value type قرار دارند؛ درنتیجه بصورت مستقیم داده را در خود ذخیره میکنند.
در ابتدا struct type ها در بین برنامهنویسان محبوبیت زیادی داشتند، چرا که به علت حضور در بخش stack حافظه از سرعت بسیار بالایی برخوردار بودند.
اما با پیدایش کلاسها و ظهور مبحث شیرین شئگرایی یا همان OOP، رفته رفته از محبوبیت آنها کم شده و درحال منسوخ شدن هستند.
البته که چون struct type ها در دسته value type ها هستند، همچنان از سرعت بالاتری نسبت به کلاسها که در دسته Reference type ها هستند، برخوردار میباشند.
به همین علت در زمان تعریف یک شئ یا نمونه از آنها، نیازی به نوشتن کلمه کلیدی new (به جهت ایجاد خانه از نوع ارجاعی در حافظه ) نیست.
برای تعریف یک struct، باید مثل class و enum در محدوده بلاک NameSpace نوشته شوند:
struct Student
{
public string name;
}
اگر قطعه کد بالا را در محدوده NameSpace برنامه خود بنویسید، یک struct به نام Student تعریف کردهاید که میتوانید در برنامه خود از آن استفاده کنید:
class Program
{
public static void Main(string[] args)
{
Student object1;
object1= "ali";
}
}
برای استفاده کردن از struct ها، باید مثل کلاسها ابتدا در برنامه خود یک شئ یا نمونه از آن تعریف کنید؛ اما همانطور که پیشتر گفته شد، به علت حضور در بخش stack حافظه و value type بودن آنها، نیازی به نوشتن کلمه new و استفاده از متد سازنده برای تعریف یک شئ یا نمونه از آن نیست.
همانطور که در قطعه کد بالا مشاهده میکنید، نحوه مقداردهی و استفاده از اعضاء نوشته شده درون یک struct، کاملا شبیه به کلاس بوده و تفاوتی در روش استفاده از آنها نیست.
جهت شرکت در دورههای زبان برنامه نویسی سیشارپ، از کد تخفیف heplc30 استفاده کنید.