الشباب ما قصروا كل طرقهم المستخدمة تؤدي المطلوب
أحببت أن إلقي الضوء على
الــ (
Extension Methods )
كما إستخدمها أخي
asmarsou
Me.Controls.
OfType
الـ
OfType هي عبارة عن
Extension Methods
الـ
OfType هذة الـ Extension تم إضافتها بواسطة الـ NET. أي انها تحديث للـ NET. وليست Extension مخصصة ألتي يظيفها المبرمج في المشروع.
أي انها لم تكن موجودة في الإصدارات القديمة من الـ NET. ، وتم إضافتها لاحقاً على شكل (
Extension )
لذلك إذا قمت بوضع الماوس على كلمة
OfType سيظهر لك أنها Extension
سبب هذة المشاركة ليس حل موضوع المشاركة ولكن أحببت أن اتكلم عن الـ Extension
الجدير بالذكر انه يمكنك عمل الـ Extension الخاص بك، في ملف
Module منفصل ، تضع فيه كل الـ Extension الخاصة بك.
يمكنك إلصاق أي Function أو Sub بأي أسم انت تراه ، وإلصاقة في أي كلاس موجود في كامل الـ NET.
مثلاً الـ
CheckBox عبارة عن كلاس
وكما تعلم هذا الكلاس لا يحتوي على Function باسم ()ChangeMyColorToRed
مثلاً : ()
CheckBox1.ChangeMyColorToRed
بإمكانك إنشاء هذة الـ Function وإلصاقها بالكلاس
CheckBox
مفيدة جداً جداً ، مثال بسيط على إستخدامي لهذة الـ Extension
الكلاس Image
قمت بإنشاء Function باسم ()ToBytesArray وألصقتها بالكلاس Image
الآن أي صورة Image لدي أستطيع إستخدام الوظيفة ()ToBytesArray عليها لتحويلها إلى مصفوفة بايتات
مثلاً : MyImg صورة
بهذة الطريقة :
()Dim BlaBla As Byte() = MyImg.ToBytesArray
تستطيع إلصاق الكثير من الــ Extension في الكلاس Image على سبيل المثال :
()MyImg.ToBytesArray
()MyImg.ToStream
()MyImg.Print
()MyImg.ToGrayscale
()MyImg.ToIcon
()MyImg.
ToBytesArray
Function تعود بقيمة من نوع مصفوفة بايتات لتسهيل عملية الحفظ مثلاً في قواعد البيانات
()MyImg.
ToStream
Function تعود بقيمة من نوع Stream
()MyImg.
Print
Sub يقوم بإرسال أمر الطباعة إلى الطابعة لطباعة الصورة ( مثلاً )
()MyImg.
ToGrayscale
Function تعود بقيمة من نوع Image ولكن بعد تحويلها من صورة ملونة إلى صورة بدون ألوان ( تدرجات الرمادي )
()MyImg.
ToIcon
Function تعود بقيمة من نوع Icon بعد تحويلها من صورة إلى أيقونة
ستسهل عليك أمور كثيرة ، حتى أنها أجمل بكثير ، ومرتبة .
هذا مثال بسيط ، تخيل ماذا يمكن أن تفعل مع هذة الـ Extension
طريقة إنشاء الـ Extension بسيطة جداً جداً.