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



  • ۲۵
  • مرداد

جلسه ۱۰ : Dynamic Type در #C

  • دسته‌بندی‌ها :
جلسه ۱۰ : Dynamic Type در #C
    • جزئیات
    • نوع محتواآموزش تصویری

      مقدمه :

      با عرض سلام و وقت بخیر خدمت کاربران سایت پی وی لرن ، با یکی دیگر از جلسات دوره کامل آموزش #C در خدمت شما دوستان هستیم . در بخش قبل با انواع ناشناس (anonymous type) در زبان #C آشنا شدید ، در این قسمت قصد داریم به معرفی Dynamic Type در #C و استفاده از داینامیک ها در سی شارپ در این زبان بپردازیم. تا پایان این جلسه همراه ما باشید.

       

      Dynamic Type در #C :

      C # 4.0 با (NET 4.5.) یک نوع جدید را معرفی کرد که در زمان کامپایل برنامه از بررسی آن جلوگیری می کند. شما در مورد متغیر var که کامپایلر یک نوع خاص را بر اساس مقدار آن اختصاص میدهد در بخش قبلی آشنا شدید.

      کامپایلر از بررسی و چک کردن یک نوع پویا در زمان کامپایل چشم پوشی می کند؛ در عوض، در زمان اجرا نوع آن مشخص می شود.

      یک نوع پویا را می توان با استفاده از کلید واژه dynamic تعریف کرد:

      مثال : 

      کامپایلر در اغلب موارد انواع dynamic را در انواع شیء کامپایل می کند. همانند زیر :

      مثال : 

      نوع واقعی dynamic در زمان اجرا مشخص خواهد شد. شما می توانید نوع متغیر پویا را به صورت زیر بررسی کنید:

      مثال : 

      خروجی :

      مثال : 

      متغیر dynamic نوع خود را در زمان اجرا بر اساس مقدار سمت راست اپراتور “=” تغییر می دهد. مثال زیر نشان می دهد که چگونه یک متغیر پویا نوع خود را بر اساس مقدار آن تغییر می دهد:

      مثال : 

      خروجی :

      مثال : 

      اگر یک شیء کلاس را به نوع پویا اختصاص دهید، کامپایلر نوع متدها و پراپرتی های شیء کلاس را هم بررسی نمی کند. مثال زیر را در نظر بگیرید.

      مثال : 

      در مثال فوق، ما شیء Student را به یک متغیر پویا اختصاص دادیم. در بیانیه دوم در متد Main ما متد FakeMethod را استفاده می کنیم که در کلاس Student وجود ندارد. با این حال، کامپایلر خطایی برای FakeMethod نمی دهد، زیرا متغیر را برای نوع پویا بررسی نمی کند ، ولی در ادامه یک استثناء زمان اجرا برای آن را به صورت زیر دریافت خواهید کرد.

      دریافت ارور dynamic type

      استفاده از داینامیک ها به عنوان پارامتر متدها :

      یک متد می تواند پارامترهای نوع پویا داشته باشد تا بتواند هر نوع پارامتر را در زمان اجرا بپذیرد.

      مثال : 

      خروجی :

      مثال : 

       

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

      1. انواع پویا به جای زمان کامپایل در زمان اجرا بررسی می شوند.
      2. کامپایلر نوع را برای dynamic type چک نمیکند. بنابراین در زمان کامپایل هیچ خطایی در مورد انواع پویا ارائه نمی دهد.
      3. ویژوال استادیو از نمایش intellisense برای  انواع پویا پشتیبانی نمی کند.
      4. یک متد می تواند پارامترهای نوع پویا داشته باشد.
      5. اگر یک متد یا پراپرتی وجود نداشته باشد، در زمان اجرا یک استثناء برگردانده خواهد شد.

       

      در این بخش با dynamic type ها در زبان #C آشنا شدید ، در قسمت بعد این آموزش شما را با نحوه تعریف و مقدار دهی اشیاء (Object Initializer Syntax) در این زبان آشنا خواهیم کرد.

      QR:  جلسه ۱۰ : Dynamic Type در #C
      به اشتراک بگذارید