آموزش سی شارپ

مباحث پایه سی شارپ

مباحث پیشرفه سی شارپ

دستورات سی شارپ

ساختارها در زبان سی شارپ – آموزش زبان سی شارپ

  • پنج شنبه ۲۲ فروردین ۱۳۹۸
  • بازدید ۲۸۱ نفر

csharp structures 4523 تصویر

ساختارها در زبان سی شارپ

ساختارها مشابه آرایه ها هستند با این تفاوت که در آرایه ها فقط می توانید یک نوع داده داشته باشید. یعنی همه عناصر آرایه باید از این نوع باشند. اما ساختارها اجازه می دهد تا انواع داده مختلف را در یک مجموعه قرار دهیم.

از ساختار برای نشان دادن یک رکورد استفاده می شود. فرض کنید می خواهید کتاب های خود را در یک کتابخانه نگه داری کنید. ممکن است بخواهد اطلاعات زیر را در مورد هر کتاب ذخیره کنید:

  • عنوان (Title)
  • نویسنده (Author)
  • موضوع (Subject)
  • شناسه (Book ID)

تعریف یک ساختار در سی شارپ

برای تعریف یک ساختار باید از کلمه کلیدی struct استفاده کنید. در زیر نحوه تعریف ساختار Book را مشاهده می کنید:

مثال زیر نحوه استفاده از ساختار را نشان می دهد:

امتحان کنید

زمانی که کد بالا توسط کامپایلر سی شارپ اجرا شود، نتیجه زیر را تولید خواهد کرد:

ویژگی ساختارها در زبان C#

در مثال بالا نحوه تعریف و استفاده از یک ساختار ساده به نام Books را مشاهده کردید. ساختار زبان C# بسیار متفاوت با ساختار زبان C++ و زبان C هستند. در زیر ویژگی های مربوط به ساختارها در زبان سی شارپ را مشاهده می کنید:

  • ساختارها می توانند متد، فیلد، ایندکسر، خاصیت، متدهای اپراتور و رویداد داشته باشند.
  • برای ساختارها می توان سازنده تعریف کرد ولی نمی توان برای آن مخرب تعریف کرد. با این حال، شما نمی توانید یک سازنده پیش فرض برای یک ساختار تعریف کنید. سازنده پیش فرض به طور خودکار تعریف می شود و نمی تواند تغییر کند.
  • ساختارها نمی توانند از ساختارها و کلاس های دیگر ارث بری کنند.
  • همچنین سایر کلاس ها هم نمی توانند از ساختار ارث بری کنند.
  • ساختارها می توانند یک یا چند اینترفیس را پیاده سازی کنند.
  • اعضای یک ساختار نمی توانند به صورت abstract ، virtual و یا protected تعریف شوند.
  • برخلاف کلاس ها، بدون استفاده از عملگر new می توان از یک ساختار نمونه سازی کرد.
  • اگر از عملگر new استفاده نشود، فیلدها بدون مقدار باقی می مانند و نمی توان از آن ها استفاده کرد تا زمانی که مقدار دهی شوند.

کلاس و ساختار

کلاس و ساختار دارای تفاوت های اساسی هستند:

  • کلاس به صورت Reference Type می باشد ولی ساختار به صورت Value Type
  • ساختارها از وراثت پشتیبانی نمی کنند
  • ساختارها نمی توانند سازنده پیش فرض داشته باشند

برای درک بهتر مبحث ساختارها، مثال قبلی را به صورت زیر تغییر داده ایم:

امتحان کنید

زمانی که کد بالا کامپایل و اجرا شود، نتیجه زیر را تولید خواهد کرد:

ثبت نظر
ریفریش کنید!
نظرات کاربران (۰ مورد)

هیچ نظری ثبت نشده است