![]() |
|
الدرس الخامس عشر : التعرف على Static - نسخة قابلة للطباعة +- منتدى فيجوال بيسك لكل العرب | منتدى المبرمجين العرب (http://vb4arb.com/vb) +-- قسم : الأقسام التعليمية - المنتدى القديم (http://vb4arb.com/vb/forumdisplay.php?fid=90) +--- قسم : قسم دورات المنتدى (http://vb4arb.com/vb/forumdisplay.php?fid=113) +---- قسم : دورة .net 2008 . لنبدأ سوياً (http://vb4arb.com/vb/forumdisplay.php?fid=138) +---- الموضوع : الدرس الخامس عشر : التعرف على Static (/showthread.php?tid=5412) |
الدرس الخامس عشر : التعرف على Static - oneyemenweb2 - 08-10-12 منقول من المنتدى السابق كاتب المقال أحمد جمال المشرف العام بسم الله الرحمن الرحيم . السلام عليكم ورحمة الله وبركاته . لاحظنا في الدالة main الموجودة اساساً في البرنامج اننا نستخدم الكلمة static في ال C# أو Shared في ال VB.net ، فما معنى هذه الكلمة ؟ الكلمة static والتي يمكن استخدامها مع الدوال او الكلاس او حتى المتغيرات تعني ان هذا المتغير او الدالة يتم الوصول لها من على مستوى ال Class مباشرة وليس من مستوى ال object ، لنفترض المثال التالي الخاص ب Person : C#: كود : class Personكود : Class Person ولنفترض اننا كتبنا الكود التالي مثلاً : C#: كود : Person MyEmpolyee = new Person();VB.net: كود : Dim MyEmpolyee As New Person() C#: كود : Person MyEmpolyee = new Person();كود : Dim MyEmpolyee As New Person() مثال على الاستفادة من هذه الخاصية هي خاصية العدادات ، والتي تقوم بعد الاوبجكتس التي ننشأها من هذا الكلاس ، سنضع الكود الاضفة في ال Constructor فيما نضع كود النقص في Destructor : C#: كود : class Personكود : Class PersonC#: كود : Person MyEmpolyee = new Person();VB.net: كود : Dim MyEmpolyee As New Person()كود : Dim MyEmpolyee2 As New Person() لو افترضنا الكود التالي : c#: كود : Person [] MyEmpolyee = new Person[5];vb.net: كود : Dim MyEmpolyee As Person() = New Person(4) {} لا تتوقع ان الناتج سيكون 5 ، للاسف توقعك ليس في محله ، والسبب ان اياً من نسخ MyEmpolyee لم يتم انشاءه بعد ، الحالة التالية هي من ستعطيك الناتج 5 : C#: كود : Person [] MyEmpolyee = new Person[5];كود : Dim MyEmpolyee As Person() = New Person(4) {} الدرس الخامس عشر : التعرف على Static - oneyemenweb2 - 08-10-12 الكاتب احمد جمال Static Class : منذ .net framewrok 2.0 تم اعتماد مبدأ ال Static Class ، وبطبيعة الحال فإن أي Static Class لا بد ان تكون جميع المتغيرات والدوال فيه من نوع static ، اضف إلى ذلك فإنه ليس من المنطقي تعريف object من هذا الكلاس باستخدام New . في هذه الحالة يمكن استخدام الكلاس ودوالة مباشرة ، ابسط امثلة هذا ال Class هي MessageBox والتي يمكن استخدامها مباشرة دون تعريف نسخة منها . الدرس الخامس عشر : التعرف على Static - oneyemenweb2 - 08-10-12 كاتب الرد النبهاني مبرمج محترف من الدرجة الأولى بارك الله فيك اخي احمد على هذا المجهود الرائع بحق ، الكثير من المبرمجين يغفلون هذه المفاهيم التي ظهرت مع الاصدارات 2 وما فوق من الـ net framework ، وهي اضافات رائعه حقيقة . لكن لدي سؤال عن آخر كود وهو الكود التالي : كود : Dim MyEmpolyee As Person() = New Person(4) {} اليس من المفترض ان يكون ال index لـ MyEmployee داخل الحلقه التكراريه هو i بدلا من 0 فالكود السابق اراه غير منطقي ! تحياتي ................................ احمد جمال رد صحيح ايضاً ، انت Debugger كويس شد حيلك في الباقي بقى علشان انا عارف ان في مصايب |