تقييم الموضوع :
  • 0 أصوات - بمعدل 0
  • 1
  • 2
  • 3
  • 4
  • 5
[مقال] Indexer Property
#1
السلام عليكم ورحمة الله وبركاته


--


اليوم مقالة سريعة تفيد مطوري الكلاسات والادوات عاما ، حيث ان هذا الموضوع يسهل الكثير والكثير للوصول الى مصفوفة داخل class من خلال خاصية ..

دعونا نتعرف على الـIndexer Property










ماهي الIndexer Property


نحن نعرف ان هناك خاصية للفورم تسمى Controls وهي عبارة عن خاصية مفهرسة (Indexer Property) :-




Indexer Property يعني تقدر تستعمل الخاصية كأنها مصفوفة ، حيث في مثالنا تستطيع الوصول الى control بالاندكس :-





كيف يمكننا عمل ذلك ؟؟؟ تابع ..









صنع Indexer Property


اولا نضيف class بهذه الطريقة :-

PHP كود :
public class GetClassControls
    
{
        
Control[] controls = new Control[] { new Button(), new TextBox(), new Label() };
    } 

فنضع المصفوفة التي سيتم فهرستها لاحقا .



الان نضع هذا الخاصية :

PHP كود :
Control[] controls = new Control[] { new Button(), new TextBox(), new Label() };

        public 
Control this[int index]
        {
            
get
            
{
                return 
controls[index];
            }
        } 

طبعا في الكود انا وضعت get فقط -- لكن يمكنك زيادة الخاصية ووضع set .



الان اصبحت هذه الclass تسمى Indexer class
فيمكنك بالكود التالي الوصول للمصفوفة التي بداخلها مثل طريقة Form.Controls :-



رائع اليس كذلك !!..




طيب يا محمد انت قلت في العنوان انك ستقوم ب Indexer Property وليس Indexer class !!

نعم انا قلت ذلك ، وهذا من باب الاحترافية فقط .. فكما اشرنا في بداية الموضوع ان الخاصية Form.Control هي خاصية مفهرسة (Indexer Property) وسنقوم بالضبط بتكوين خاصية نفسها.




لذلك الان علينا اضافة متغير عادي على مستوى الفورم

PHP كود :
private GetClassControls _classContrl = new GetClassControls(); 

هذا المتغير يقوم بإنشاء instance للكلاس الي سويناه


--


ثم نقوم بتكوين خاصية تقوم بعمل get لهذا المتغير :

PHP كود :
public GetClassControls ClassControls get { return _classContrl; } } 






الان هذه الخاصية ClassControls اصبحت Indexer Property لانها تشير الى متغير عام ، والمتغير العام يشير الى Indexer class Big Grin

كما نرى في الصورة :-




الان في النهاية ، شوفو نستطيع ان نقوم بجلب control من خلال الindex اي انها اصبحت Indexer Property كخاصية Form1.Controls TongueBig GrinCool













في النهاية اتمنى عجبتكم هذه المقالة السريعة

والى اللقاء في مقالات اخرى ان شاء الله



Done by - Alshaki LLah
الرد }}}
تم الشكر بواسطة: houssam11350 , Sajad , hoob computer , oneyemenweb2 , ali.alfoly
#2
السلام عليكم ورحمة الله
جزاك الله خيرا اخي محمد
شرح ممتاز وفكرة رائعة
الرد }}}
تم الشكر بواسطة: الشاكي لله


التنقل السريع :


يقوم بقرائة الموضوع: بالاضافة الى ( 1 ) ضيف كريم