|
السلام عليكم و رحمة الله و بركاته سوف أقوم من خلال هذا الموضوع ، بطرح بعض المفاهيم المهمة في أي لغة و لكن من خلال لغة C# بحيث أن هذه المفاهيم مهمة جدا في بناء التطبيقات و تفوقها من حيث الأداء المواضيع المطروحة من خلال المرجع Visual C# 2005 Stsep by Step بحيث أنني يمكن أن أقوم بترتيب الأفكار الموجودة في المرجع استعمال تجميع المهملات و ادارة الموارد يجب قبل أن تقرأ هذه الفقرة أن يكون لديك معرفة بكيفية انشاء المتغيرات و الكائنات و كيف يتم حجز الذاكرة عند انشاء كل من المتغيرات و الكائنات ، واليكم تذكرة : يتم انشاء الأنواع المباشرة ( int for an example ) في المكدس بينما الأنواع المرجعية تعطى مساحة من الذاكرة التكويمية لا تملك أجهزة الحاسوب كميات لا تنفذ من الذاكرة ، لذلك يجب استردادها عندما لا يعود المتغير أو الكائن بحاجة اليها ، كيف يتم الاسترداد ؟ - يتم تدمير الأنواع المباشرة و يتم استرداد ذاكرتها عندما تنتهي الطريقة التي يتم انشاؤها فيها - لكن ماذا بشأن الأنواع المرجعية : يتم انشاء الكائن باستعمال الكلمة new ، لكن كيف ومتى يتم تدمير الكائن ؟ هذا ما سوف نتكلم عنه ..... حياة الكائن ماذا يحصل عندما تنشئ و تدمر كائن ؟ الانشاء كما يلي : Circle obj = new Circl ملاحظة : obj متغير مرجعي ان العملية new تتألف من مرحلتين : - يجب على العملية new حجز بعض الذاكرة الخام من الكومة ( ليست لدينا سيطرة على هذه المرحلة من عملية الانشاء ) - يجب على العملية new تحويل الذاكرة الخام الى كائن ، تمهيد الكائن ( يمكننا أن نتحكم بهذه المرحلة من خلال استخدام ال Constructor ) ملاحظة لمبرمجوا C++ يجب أن ينتبهوا الى أنه لايمكنك في C# تحميل new تحميلا زائدا للتحكم بمرحلة الحجز بعد عملية الانشاء ، يمكن الوصول الى أعضاء الكائن باستعمال عامل النقطة يمكن جعل متغيرات مرجعية أخرى تشير الى نفس الكائن : Circle ref = obj ما هوعدد المراجع التي يمكن انشاءها الى الكائن ؟ أد ما بدك ! يجب على محرك التشغيل أن يتعقب كل تلك المراجع ، بحيث أنه اذا اختفى المتغير obj بزوال مداه ، قد تظل هناك متغيرات أخرى مثل ( ref ) متواجدة لذلك اخترعوا الكزالك ( عفوا ) لذلك لا يمكن ربط عمر الكائن بمتغير مرجعي معين . يمكن تدمير الكائن فقط عندما تختفي كل المراجع اليه . ملاحظة لمبرمجوا C++ يجب أن ينتبهوا الى أن C# لا تتضمن العامل Delete ( محرك التشغيل CLR هو من يتحكم متى سيتم تدمير الكائن ) تدمير الكائن : أيضا يتألف من مرحلتين تتطابقان مع مرحلتي الانشاء : - كتابة المدمر ( destructor ) - يجب اعادة الذاكرة الخام الى الكومة ( افلات الذاكرة التي عاش فيها الكائن ) ( ليس لدينا سيطرة على هذه العملية ) عملية تدمير الكائن و اعادة الذاكرة الى الكومة تسمى ( Garbage Collection ) بعد النقاش سوف ننطلق الى تجميع المهملات
قرأتُ مجدَكِ في قلبي و في الكُتُـبِ شَـآمُ ، ما المجدُ؟ أنتِ المجدُ لم يَغِبِ
|