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



  • ۲۵
  • مرداد

جلسه ۵۵ : Extension Method در #C

  • دسته‌بندی‌ها :
جلسه ۵۵ : Extension Method در #C
    • جزئیات
    • نوع محتواآموزش تصویری

      مقدمه :

      با عرض سلام و وقت بخیر خدمت کاربران سایت پی وی لرن ، با یکی دیگر از جلسات دوره کامل آموزش #C در خدمت شما دوستان هستیم . در بخش قبلی با predicate delegate در زبان #C آشنا شدید ، در بخش بعدی قصد داریم شما را با متد های توسعه یافته در #c یا Extension Method در #C در این زبان آشنا کنیم. تا پایان این جلسه همراه ما باشید.

      Extension methods ، متد هایی هستند بر اساس نیاز به یک کلاس اضافه می شوند. Extension methods به شما اجازه می دهند متدهای اضافی را بدون تغییر، یا ایجاد مجدد کلاس، ساختار یا رابط اولیه به آنها تزریق کنید. Extension methods را می توان به کلاس سفارشی خود، کلاس های چارچوب NET. یا رابط ها و … اضافه کرد.
      در مثال زیر، IsGreaterThan یک Extension methods برای نوع int است، که اگر مقدار متغیر int بیشتر از پارامتر عدد صحیح ارائه شده باشد مقدار true را برمی گرداند و بلعکس.
      مثال : 

      متد IsGreaterThan جزء ساختار int (int32 struct) نیست. در حقیقت یک متد توسعه یافته است که توسط برنامه نویس برای نوع داده int نوشته شده است. متد IsGreaterThan در سراسر برنامه در دسترس خواهد بود.

      متد های توسعه یافته دارای نماد خاص در visual studio هستند، به طوری که شما می توانید به راحتی فرق بین متدهای کلاس و متدهای توسعه یافته را متوجه شوید .

      Extension Method ها در #C

      extension method

      نحوه ایجاد Extension methods :

      یک extension method در واقع یک نوع خاص از متدهای استاتیک است که در یک کلاس استاتیک تعریف شده است. برای تعریف یک extension method ، ابتدا کلاس static را تعریف می کنیم.

      به عنوان مثال، ما یک کلاس IntExtensions را در فضای نام ExtensionMethods در مثال زیر ایجاد کرده ایم. کلاس IntExtensions شامل تمام متدهای extension که برای نوع داده int تعیین می شوند ، است. (شما می توانید از هر نام برای فضای نام و کلاس استفاده کنید.)
      مثال : 

      حالا، یک متد استاتیک را به عنوان متد extension که در آن پارامتر اول ، نوعی را که متد extension روی آن اجرا میشود را تعریف می کند. ما قصد داریم از این extension method در نوع int استفاده کنیم. بنابراین در پارامتر اول باید از نوع int بهمراه کلمه کلیدی this استفاده شود.
      به عنوان مثال، متد IsGreaterThan بر روی int عمل می کند، بنابراین اولین پارامتر، “this int i” است.
      مثال : 

      در حال حاضر، می توانید با افزودن فضای نام ExtensionMethods در هر کجا که بخواهید از این Extension Methods استفاده کنید.
      مثال : 

      خروجی :
      مثال : 

       

      نکته : تنها تفاوت بین یک متد استاتیک و یک متد توسعه یافته این است که اولین پارامتر در متد توسعه یافته ، نوعی است که به اپراتور منتقل می شود، و دارای کلمه کلیدی this است.

       

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

      1. Extension methods ، منتدهای سفارشی اضافی هستند که از ابتدا با کلاس نبودند و بعدا به آن اضافه شدند.
      2. Extension methods را می توان به کلاس سفارشی، کلاس های موجود در خود دات نت یا کلاس های third party ، ساختارها و یا رابط ها اضافه کرد.
      3. اولین پارامتر از متد extension باید نوعی باشد که متد extension روی آن اجراء می شود و قبل آن باید از کلمه کلیدی this استفاده کرد.
      4. Extension methods را می توان در هر نقطه از برنامه با استفاده از نام فضای متد extension استفاده کرد.

       

      در این بخش با Extension methods ها در زبان #C آشنا شدید ، در بخش بعدی قصد داریم شما را با انواع ناشناس (Anonymous Type) ها در #C آشنا کنیم.

      QR:  جلسه ۵۵ : Extension Method در #C
      به اشتراک بگذارید