دوره های آموزشی آکادمی پی وی لرن (پروژه محور و ویژه بازار کار)



  • ۲۵
  • مرداد

جلسه ۱۹ : ساختارها (struct) در زبان #C

  • دسته‌بندی‌ها :
جلسه ۱۹ : ساختارها (struct) در زبان #C
    • جزئیات
    • نوع محتواآموزش تصویری

      مقدمه :

      با عرض سلام و وقت بخیر خدمت کاربران سایت پی وی لرن . و کاربرانی که دوره کامل آموزش #c ، را دنبال می کنند. در بخش قبلی در مورد حلقه تکرار do while صحبت کرده و ساختار آن را بررسی کردیم. در این جلسه قصد داریم شما را با ساختارها (struct) در زبان #C و تفاوت های بین کلاس و ساختار در سی شارپ آشنا کنیم.

      در مورد class در بخشهای قبلی صحبت کردیم.گفتیم کلاس مرجع محور (by reference) است ولی struct مقدار محور است .

      یک ساختار یک “نوع مقدار” “value type” است که می تواند شامل سازنده ها، ثابت ها، فیلد ها، متد ها، پراپرتی ها ، شاخص ها، عملگرها، رویدادها و … باشد .

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

      مثال : 

       

      ساختار را می توان با یا بدون کلمه کلیدی new استفاده کرد. مانند مثال زیر :

      مثال : 

       

      ساختارها مقدار محور بوده و بنابراین سریعتر از یک شیء کلاس هستند.

      هر زمان که بخواهید داده ها را ذخیره کنید، از struct استفاده کنید.

      به طور کلی ساختارها برای برنامه نویسی بازی (game programming) مناسب هستند.

      انتقال یک شیء کلاس نسبت به یک ساختار ساده تر است.بنابراین وقتی که داده ها را در میان رشته ای اطلاعات یا به سایر کلاس ها منتقل می کنید ، از struct استفاده نکنید .

      مثال : 

       

      ساختار فوق شامل فیلدهای خصوصی x , _y_ ، فیلدهای عمومی x و y، فیلدهای ایستا X و Y، پراپرتی های عمومی XPoint و YPoint و رویداد PointChanged است

      این ساختار همچنین شامل متد های استاتیک و غیر استاتیک می باشد.

      توجه داشته باشید هر زمان که XPoint یا YPoint تغییر می کنند رویداد PointChanged اتفاق می افتد.

      در کد زیر، ابتدا ساختار Point را با کلید واژه new ایجاد کرده، و همچنین رویداد PointChanged را مدیریت می کنیم:

      مثال : 

      خروجی :

      مثال : 

       

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

      مثال : 

       

      مشخصات ساختار :

      1. ساختار می تواند شامل سازنده ها، ثابت ها، فیلدها، متدها، خواص، شاخص ها (indexers)، عملگرها، رویدادها و انواع توزیع شود.
      2. ساختار نمی تواند شامل constructor پیش فرض یا destructor باشد.
      3. ساختار می تواند اینترفیس را اجرا کند.
      4. یک ساختار نمی تواند یک ساختار یا کلاس دیگری را به ارث ببرد.
      5. زیرمجموعه های ساختار را نمی توان به شکل abstract، virtual، یا protected تعریف کرد.
      6. برای استفاده از خواص، متدها و رویدادهای داخل ساختار ها باید از کلمه کلیدی new استفاده شود.

       

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

      1. در #C کلاس از نوع مرجع محور (ارجاعی) و ساختار از مقدار محور است.
      2. در Struct نمی توان constructor پیش فرض و یا destructor را اعلام کند ولی فقط می توان constructor های پارامتری را داشته باشد.
      3. Struct می تواند بدون کلمه کلیدی new استفاده شود. ولی در این صورت نمی توان از متد ها، رویدادها یا خواص آن استفاده کرد.
      4. Struct را نمیتوان به عنوان پایه استفاده کرد و یا نمیتواند از ساختار یا کلاس دیگری مشتق شود (ارث بری).

       

      چند نکته جهت به خاطر سپردن :

      1. ساختار در زبان #C از نوع مقدار محور بوده و توسط کلمه کلیدی struct تعریف می شود.
      2. ساختارها می توانند بدون استفاده از کلمه new استفاده شوند ولی دراین صورت به متدها ، پراپرتی ها و رویدادهای آن دسترسی نخواهید داشت.

       

      در این قسمت با ساختارها (structs) در زبان #C آشنا شدید .

      در قسمت بعد شما را با enum ها در این زبان آشنا خواهیم کرد.

      QR:  جلسه ۱۹ : ساختارها (struct) در زبان #C
      به اشتراک بگذارید


      دیدگاه کاربران
      1. تصویر کاربر
        • تصویر کاربر