• 0
imadouzoun

دوال التوسع في الدوت نت باختصار

سؤال

إنها أحد المزايا الرائعة التي تتمير بها لغة C# عن غيرها. ظهرت هذه الميزة أول مرة في الإصدار ( Dot Net 3.0 ) فما هي و ما الفائدة منها؟

 

نعلم كلنا كمبرمجين دوت نت اننا نستخدم أنماط بيانات و و مكتبات الـ .Net Framework و هناك الكثير من الكلاسات الأساسية التي نحب أن يكون فيها دوال تسهل علينا و توفر في حجم الكود المتكرر. طبعاً الكلام نفسه ينطبق على أي كلاس نستخدمه و يمكننا أن نوسعه و نضيف إليه دوال لاحقاً بنفس الطريقة, سأذكر هنا مثال بسيط للفهم:

 

جميعنا يعرف الكلاس String في C# الذي يملك بعض الدوال البسيطة, سنقوم بتوسعة هذا الكلاس بإضافة دالة جديدة غير موجودة فيه في الأصل و هي WordCount لحساب عدد الكلمات في السلسلة النصية 

 

namespace ExtensionMethods{    public static class MyExtensions    {        public static int WordCount(this String str)        {            return str.Split(new char[] { ' ', '.', '?' },                             StringSplitOptions.RemoveEmptyEntries).Length;        }    }  }

MyExtensions: اسم الكلاس الذي يحوي دالة التوسع أو دوال التوسع و هذا الاسم اختياري اختر أي اسم يعجبك ولن يؤثر ذلك على دمج الدالة في الكلاس الهدف.

 

 

WordCount: دالة التوسع المراد إضافتها إلى الكلاس في وقت التنفيذ. يجب أن تكون static.

 

 

 this String: هذا البارامتر يشير إلى الكلاس الهدف و الكلمة المحجوزة this هنا ضرورية جدا.

 

Str: يمثل المتغير الذي من خلاله سيتم استدعاء دالة التوسع يعني لاحقاً ستكتب التالي لاستخدام ادالة التوسع:

 

String text = "We are in arab team website";Console.Write(text.WordCount());

أتمنى أن أكون قد أفدتكم بمعلومة جديدة.

 

تحياتي

تم تعديل بواسطه imadouzoun
3

شارك هذا الرد


رابط المشاركة
شارك الرد من خلال المواقع ادناه

2 إجابة على هذا السؤال .

  • 0

أفدت وزدت أستاذ عماد :)

0

شارك هذا الرد


رابط المشاركة
شارك الرد من خلال المواقع ادناه
  • 0

الله يبارك فيك أخي :)

0

شارك هذا الرد


رابط المشاركة
شارك الرد من خلال المواقع ادناه

من فضلك سجل دخول لتتمكن من التعليق

ستتمكن من اضافه تعليقات بعد التسجيل



سجل دخولك الان

  • يستعرض القسم حالياً   0 members

    لا يوجد أعضاء مسجلين يشاهدون هذه الصفحة .