عنوان:

Extension Methods


نویسنده: نیلوفر نوروزی
تاریخ: ۱۳۹۱/۰۴/۰۸ ۲۲:۵۸
آدرس: www.dntips.ir
Extension methods شما را قادر می‌سازند تا به type‌های موجود بدون اینکه کلاس جدیدی ایجاد کنید که از آن‌ها به ارث رفته باشند، متد‌های جدیدی اضافه نمائید و بیشترین استفاده آن‌ها در  System.Collections.IEnumerable است.
به طور مثال این امکان وجود ندارد که بتوان بر روی  IEnumerable‌ها از دستور Foreach استفاده کرد.
برای نمونه من برای اینکه foreach داشته باشم، آن‌را به لیست تبدیل می‌کردم و سپس از امکان foreach  بهره‌مند می‌شدم که شاید کار درستی نباشد.
اما با Extension Method افزودن متد foreach به IEnumerable به نحو زیر میسر است:
public static void ForEach<T>(this IEnumerable<T> collection, Action<T> action)
{
   foreach (var item in collection)
           action(item);         
}

 

نظرات

  • مهمان در ۱۳۹۱/۰۴/۰۹ ۱۱:۱۲
    من فکر نمی‌کنم این روش نوشتن مطلب صحیح باشه. شما خیلی کلی می‌نویسید. بهتره با جزئیات بیشتری به مطلب بپردازید. مثلاً لزوم ذکر نوع داده ای که قصد دارید اون رو توسعه بدید بعد از کلمه‌ی کلیدی this در پارامتر اول یا الزام وجود متد در یک کلاس static و تعریف static خود متد. اینها موضوعاتی هستند که برای فردی که با Extension Methodها آشنا نیست باید گفته بشه.
    • مهمان در ۱۳۹۱/۰۴/۰۹ ۱۲:۱۰
      من هم با نظر آقای راد موافقم. کلی گویی بدرد کسی که آشنایی زیادی نداره، نمیخوره. 
      شرمنده اما حسم از این پست این بود که یه جوری موضورع از سر خودتوت باز کردین.
      • وحید نصیری در ۱۳۹۱/۰۴/۰۹ ۱۲:۱۳
        لطفا این بحث رو ادامه ندید. در یک سری از دسترسی‌های نویسنده‌ها به زودی تجدید نظر خواهد شد. چه کسانی که ابراز تمایل کرده بودند و فقط وقت من رو جهت ثبت آن‌ها نصف روزی تلف کردند؛ چه کسانی که مطالب سطحی ارسال می‌کنند.
        با تشکر

        ضمن اینکه یک مطلب را هم مد نظر داشته باشید. اینجا هدف بیشتر ذکر یک سری نکته است به همین جهت اسم سایت tips دارد (نکات ریز).
        اسم سایت encyclopedia نیست که برای هر مطلبی قرار باشد کتاب نوشته شود. اگر نوشته شد، چقدر خوب؛ اگر نه ... یک نکته ریز جدید یاد گرفتید. این هم خوب.
        همچنین هدف از این سایت خواننده عام با سطح مطالعه و اطلاعات صفر نیست و نبوده. از روز اولش اینطور نبوده و نخواهد بود.

        یک مطالب رو هم فراموش نکنید. به قول مولوی: «گر تو بهتر میزنی بستان بزن»
        در طی یک ماهی که این سایت در حالت تعلیق بود ... من هر چقدر سایت‌های فارسی زبان فنی برنامه نویسی رو گشتم که دوتا مطلب به درد بخور پیدا کنم ... چیزی نیافتم. هیچی! واقعا دریغ از یک مطلب فنی به درد بخور که منتشر شده باشد. حالا همین عده منتظرند سریع بریزند سر یک نفر شروع کنند به داد و قال.
        باز تکرار می‌کنم: «گر تو بهتر میزنی بستان بزن»


  • نیلوفر نوروزی در ۱۳۹۱/۰۴/۰۹ ۱۴:۵۴
    من اصلا قصد این را نداشتم که کلی گویی کنم
    اگر مطلب درست نوشته نشده معذرت می‌خوام
    هدفم فقط این بود که مطلبی که به خودم خیلی  کمک کرده در اختیار دوستان قرار دهم.
  • peyman در ۱۳۹۱/۰۴/۰۹ ۱۸:۱۴
    والا تا جایی که من یادم هست پایه این وبلاگ بر این بوده که افراد تا حدی آشنایی با مفاهیم ابتدایی رو دارند . اما در هر صورت ساده نویسی در بیان مطالب پیچیده میتونه این وبلاگ رو بطور خیلی گسترده‌تر  مفید وافع کنه حتی برای افرادی که مبتدی هستند . در پایان هم باید بگم که من دست و پای اون فردی رو میبوسم که به من حتی یک کلمه یاد بده ... چه آقای راد در وب سایت برنامه نویس . چه آقای نصیری و دوستان گرامیشون در این وبلاگ که مدت زیادی هست وبلاگ مفیدشون رو مطالعه میکنم ...