تعلم كيفية البرمجة ب #C


الدرس: استخدام المصحح


الصفحة السابقة
سنأخذ الآن استراحة قصيرة C# .  جيد ، لكن بيئة التطوير الخاصة بنا ، Visual Studio Express ، يمكنها أن تفعل أكثر من وظيفة محرر الملفات الأساسية. يحتوي على أداة رائعة تتيح لنا أن نكون فعالين للغاية في تصحيح أخطاء تطبيقاتنا وفهم كيفية عملها. 
هذا هو المصحح. دعنا نتعرف بسرعة على ماهية الأمر وكيف يعمل

في ما يصلح


وفقًا لما درجت عليه العادة من تبسيط حياتنا ، فإن Visual Studio Express لديه مصحح أخطاء. إنها أداة عملية للغاية تتيح لك الحصول على معلومات كاملة عن تقدم برنامجك.
سيتيح لك تنفيذ التعليمات واحدةً تلو الآخرى ، لتكون قادرًا على مراقبة محتوى المتغيرات ، والعودة باختصار ، لتكون قادرًا على معرفة ما يحدث بالضبط وقبل كل شيء لماذا لا تعمل هذا الكود بالتحديد.
لاستخدامه ، يجب أن يكون Visual Studio Express في وضع "تصحيح الأخطاء" . أنا لم أتحدث عن ذلك حتى الآن. للقيام بذلك ، يجب تشغيل التطبيق عن طريق الضغط على F5أو عبر القائمة  Déboguer> Démarrer le débogage أو عن طريق النقر على المثلث الأخضر الصغير الذي يذكرك أيقونة زر التشغيل.
c sharp .net framework
بدء التصحيح
لدراسة مصحح الأخطاء ، لنأخذ الوظيفةالأخيرة من TP السابق:

static void Main(string[] args)
{
    Console.WriteLine(CalculSommeIntersection());
}

static int CalculSommeIntersection()
{
    List<int> multiplesDe3 = new List<int>();
    List<int> multiplesDe5 = new List<int>();

    for (int i = 1; i <= 100; i++)
    {
        if (i % 3 == 0)
            multiplesDe3.Add(i);
        if (i % 5 == 0)
            multiplesDe5.Add(i);
    }

    int somme = 0;
    foreach (int m3 in multiplesDe3)
    {
        foreach (int m5 in multiplesDe5)
        {
            if (m3 == m5)
                somme += m3;
        }
    }
    return somme;
} 

تعيين نقطة توقف والمضي قدمًا خطوة بخطوة


لكي يتوقف البرنامج عند موقع معين ويسمح لنا بمشاهدة ما يحدث ، سيتعين علينا وضع نقاط توقف في الكود الخاص بك.
لوضع نقطة توقف ، عليك أن تضع نفسك على الخط الذي نريد إيقافه ، على سبيل المثال السطر الأول الذي نتصل به Console.WriteLine ونضغط على F9 . يمكننا أيضًا النقر فوق الهامش الأيسر لإنتاج نفس النتيجة. يتم عرض نقطة حمراء تشير إلى وجود نقطة توقف هناك.
c sharp .net framework
تعيين نقطة توقف
من الممكن وضع العديد من نقاط التوقف كما نريد ، في أي مكان في الكود الخاص بنا.
عند تشغيل التطبيق مع F5، يمكننا أن نرى أن Visual Studio Express يتوقف على الخط المخطط من خلال تسليط الضوء عليه باللون الأصفر:
c sharp .net framework
توقف المصحح عند نقطة توقف
ننتهز هذه الفرصة لنلاحظ في المربع الأحمر أن مصحح الأخطاء متوقف مؤقتًا وأنه من الممكن إما مواصلة التنفيذ (مثلث أعلاه) أو إيقافه (مربع) أو إعادة تشغيل البرنامج من البداية ( السهم في شكل دائرة).
يمكننا الآن تنفيذ التعليمات البرمجية خطوة بخطوة ، باستخدام الرموز الموجودة بجانبه أو اختصارات لوحة المفاتيح التالية:
c sharp .net framework
التنقل في رمز التصحيح
دعنا نستخدم المفتاح F10لمواصلة تنفيذ التعليمات البرمجية خطوة بخطوة. يتم تمييز السطر التالي أيضًا. اضغط المفتاح مرة أخرى F10 للانتقال إلى التعليمات التالية ، لم يعد نقاط توقف أخرى اذا ينتهي البرنامج.
ستقول لي "إنه جيد جدًا ، لكننا لم نذهب إلى الوظيفة CalculSommeIntersection()" . نعم ، ذلك لأننا استخدمنا المفتاح F10 الذي هو الخطوة الرئيسية. لدخول الوظيفة ، كان عليك استخدام المفتاح F11 وهو خطوة بخطوة مفصلة.
إذا كنا نريد أن يستمر البرنامج في نقطة التوقف التالية ، فما عليك سوى الضغط على المثلث (تشغيل) أو F5 .
أعد تشغيل برنامجنا في وضع التصحيح ، وهذه المرة ، عندما يتوقف مصحح الأخطاء عند نقطة توقفنا ، اضغط F11 للدخول إلى نص الوظيفة. نحن هنا في الوظيفة CalculSommeIntersection() . استمر في الضغط عدة مرات F10للدخول إلى جسم الحلقة for .

مراقبة المتغيرات


في هذه المرحلة من التصحيح ، إذا مررنا الماوس فوق المتغير i، وهو فهرس الحلقة ، فسيعرض Visual Studio Express معلومات مصغرة:
c sharp .net framework
قيمة متغير أثناء تصحيح الأخطاء
يخبرنا أن  قيمة i هي 1 ، أمر طبيعي ، نحن في التكرار الأول من الحلقة. إذا واصلنا المسار عن طريق الضغط F10عدة مرات ، فإننا نرى أن قيمة  زيادات i ، وفقًا لما هو متوقع.
الآن ضع نقطة توقف F9 على الخط:

multiplesDe3.Add(i); 
ومواصلة التنفيذ عن طريق الضغط F5 . يتوقف في الوقت الذي يكون فيه i هو 3. اضغط على F10 لتنفيذ إضافة i إلى القائمة وتحريك الماوس فوق القائمة:
c sharp .net framework
التفتيش على قائمة التصحيح
يخبرنا Visual Studio Express أن القائمة multiplesDe3 تحتوي على "Count" يساوي 1. إذا نقرنا على + لتوسيع القائمة:
c sharp .net framework
قائمة فحص القيم
يمكننا أن نرى أنه تمت إضافة 3 في الموقع الأول للقائمة (الفهرس 0). إذا واصلنا التنفيذ عدة مرات ، نرى أن القوائم تملأ ونحن نمضي قدمًا.
قم بإزالة نقطة الإيقاف على الخط بالضغط مرة أخرى F9 ووضع نقطة توقف جديدة على السطر:

int somme = 0; 
متابعة التنفيذ مع F5، انتهت الحلقة ، يمكننا أن نرى أن القوائم مليئة بالكامل:
c sharp .net framework
عرض العناصر في قائمة التصحيح
بفضل مصحح الأخطاء ، يمكننا حقًا رؤية كل ما يهمنا ، إنه أحد أهم نقاط قوة مصحح الأخطاء ومن المفيد حقًا فهم ما يحدث في البرنامج (بشكل عام ، يحدث ذلك غير صحيح!).
من الممكن أيضًا رؤية المتغيرات المحلية من خلال النظر إلى الأسفل في النافذة "المتغيرات المحلية" . في هذه النافذة ، يمكنك ملاحظة المتغيرات الموجودة في النطاق الحالي. هناك أيضًا نافذة "مراقبة" تسمح لك بمراقبة متغير واحد أو أكثر بالطريقة نفسها.
c sharp .net framework
النافذة التي تراقب على المتغيرات المحلية

الرجوع إلى الوراء


 هل يمكننا العودة إلى الماضي؟
هذا تقريبا هو وثيقته !  إذا كنت ترغب في إعادة تنفيذ جزء من التعليمات البرمجية لسبب ما ، لأنك لم تشاهد جيدًا أو فاتتك المعلومات التي تحتاجها ، يمكنك إجبار مصحح الأخطاء على العودة إلى البرنامج . لهذا ، لديك حلان ، إما النقر بزر الماوس الأيمن على الموقع المطلوب واختر عنصر القائمة Définir l’instruction suivante :
c sharp .net framework
تحديد البيان التالي
إما أن تتحرك مع الماوس السهم الأصفر الصغير على اليسار والذي يشير إلى المكان الذي نحن فيه.
c sharp .net framework
حرك السهم الأصفر لتغيير الخط المراد تنفيذه بواسطة المصحح
يجب أن نكون حذرين لأن هذا التراجع ليس كاملاً. في الواقع ، إذا عدت إلى بداية الحلقة التي تحسب المضاعفات وتستمر في التنفيذ ، فسترى أن القائمة لا تزال تملأ. في نهاية الحلقة ، بدلاً من احتواء 33 عنصرًا ، ستحتوي قائمة المضاعفات 3 على 66. في الواقع ، لم نقم في أي وقت من الأوقات بإفراغ القائمة وبالتالي إعادة تنفيذ هذا الجزء من الكود مخاطرة تسبب سلوك غير متوقع. من الأفضل هنا العودة إلى بداية الطريقة حتى يتم إنشاء القائمة مرة أخرى.
حتى لو لم تستدعي انتباهك في الوقت الحالي ، فسترى مع هذا الاستخدام أن هذا الاحتمال عملي للغاية. كل ذلك عندما تستوعب تمامًا كل مفاهيم النطاق المتغير.
من المهم ملاحظة أن مصحح النسخة المجانية من Visual Studio ، بالرغم من كونه قويًا ، أقل قوة بالفعل من الإصدار المدفوع. هناك الكثير من الأشياء التي لا يمكننا القيام بها.
لكن كن مطمئنًا ، فهي لا تزال متقدمة جدًا ويمكنها القيام بالكثير من الأشياء.

مكدس الاتصال call stack


النافذة المهمة الأخرى التي يجب النظر إليها هي مكدس الاتصال ، والذي يوضح مكاننا وأين ذهبنا.
على سبيل المثال ، إذا ضغطت F11 وأدخلت الطريقة ، فستتمكن CalculSommeIntersection() من رؤية مكدس الاتصال في الطريقة CalculSommeIntersection() التي تم استدعاؤها من الطريقة Main() :
c sharp .net framework
إذا قمت بالنقر فوق السطر Main() ، فسيقوم Visual Studio Express تلقائيًا بإعادتك إلى المكان الذي تم إجراء الالاستدعاء فيه. ثم يتم تمييز هذا الخط باللون الأخضر لإحداث الفرق مع التمييز باللون الأصفر وهو حقًا هو المكان الذي يوجد به المصحح. إنه مفيد للغاية عندما يكون لديك الكثير من الوظائف تسمى واحدة تلو الأخرى.
c sharp .net framework
يتم عرض مكدس الاتصال أيضًا عند مواجهة خطأ ، مما سيسهل تحديد مكان المشكلة. لقد رأيته في الفصل الخاص بالتحويلات بين الأنواع غير المتوافقة.
في أي حال ، فإن المصحح هو حقا أداة ذات قيمة مضافة عالية. لقد قدمت لك فقط الحد الأدنى الضروري. لكن صدقني ، سيكون لديك الفرصة للعودة إليها .

في الخلاصة


  • يعد مصحح الأخطاء أداة قوية للغاية لفحص محتوى المتغيرات أثناء تنفيذ البرنامج.
  • يمكننا التوقف في مكان في طلبنا بفضل نقطة توقف.
  • يتيح مصحح الأخطاء تنفيذ التطبيق الخاص بك خطوة بخطوة ومتابعة تطوره.