![]() |
|
[مقال] Indexer Property - نسخة قابلة للطباعة +- منتدى فيجوال بيسك لكل العرب | منتدى المبرمجين العرب (http://vb4arb.com/vb) +-- قسم : قسم لغة السي شارب C#.NET (http://vb4arb.com/vb/forumdisplay.php?fid=175) +--- قسم : قسم مقالات C#.NET (http://vb4arb.com/vb/forumdisplay.php?fid=177) +--- الموضوع : [مقال] Indexer Property (/showthread.php?tid=1650) |
Indexer Property - الشاكي لله - 21-01-14 السلام عليكم ورحمة الله وبركاته
-- اليوم مقالة سريعة تفيد مطوري الكلاسات والادوات عاما ، حيث ان هذا الموضوع يسهل الكثير والكثير للوصول الى مصفوفة داخل class من خلال خاصية .. دعونا نتعرف على الـIndexer Property ماهي الIndexer Property
نحن نعرف ان هناك خاصية للفورم تسمى Controls وهي عبارة عن خاصية مفهرسة (Indexer Property) :- Indexer Property يعني تقدر تستعمل الخاصية كأنها مصفوفة ، حيث في مثالنا تستطيع الوصول الى control بالاندكس :- كيف يمكننا عمل ذلك ؟؟؟ تابع .. صنع Indexer Property
اولا نضيف class بهذه الطريقة :- PHP كود : public class GetClassControlsفنضع المصفوفة التي سيتم فهرستها لاحقا . الان نضع هذا الخاصية : PHP كود : Control[] controls = new Control[] { new Button(), new TextBox(), new Label() };طبعا في الكود انا وضعت 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 ![]() كما نرى في الصورة :- الان في النهاية ، شوفو نستطيع ان نقوم بجلب control من خلال الindex اي انها اصبحت Indexer Property كخاصية Form1.Controls ![]() ![]() ![]() في النهاية اتمنى عجبتكم هذه المقالة السريعة والى اللقاء في مقالات اخرى ان شاء الله Done by - Alshaki LLah RE: Indexer Property - ali.alfoly - 23-01-14 السلام عليكم ورحمة الله جزاك الله خيرا اخي محمد شرح ممتاز وفكرة رائعة |