سلام با آموزش حرکت بین کدها در هنگام Debug برنامه های C# در خدمت شما هستم.در این درس، به آموزش نحوه حرکت بین کدها در زمان Debug برنامه های C# خواهیم پرداخت. برای این منظور، برنامه ای با کد زیر را نوشته ایم :

namespace DebugTest
{
class Program
{
static void Main(string[] args)
{
int a = 5;
a = a * 2;
a = a – 3;
a = a * 6;
Console.WriteLine(a);
}
}
}

کد مثال فوق، چندین بار بر روی متغیر a عملیات ریاضی انجام داده و سپس نتیجه نهایی را در خروجی چاپ می کند. همان گونه که در درس قبل نشان دادیم، در کنار خطی اولی که متغیر a تعریف و مقداردهی شده است، یک Breakpoint قرار دهید. سپس پروژه را اجرا نمایید. در خط اول ای که Breakpoint قرار داده اید، اجرای برنامه متوقف شده و می توانید با بردن موس بر روی متغیر a، مقدار آن را در لحظه مشاهده نمایید. در این مرحله، متغیر a دارای مقدار پیش فرض متغیرهای عددی یعنی صفر است، زیرا هنوز کد آن خط اجرا نشده است. اما بیایید کمی روند را تغییر دهیم.
از منوی Debug ، گزینه “Step over” را انتخاب کرده و یا دکمه F10 را فشار دهید. در این حالت، خط کد بعدی برنامه اجرا شده و می توانید با حرکت موس بر روی کد ببینید که اکنون متغیر a دارای مقدار است. مجددا با زدن دکمه F10 به حرکت در خط های کد ادامه داده و هر خط را یک به یک اجرا کرده و مقدار متغیر آن را در آن خط بسنجید، تا این که به انتهای کد برسید.
مثال فوق بسیار ساده ولی در عین حال کاربردی بود، اکنون می توانیم وارد مراحل پیشرفته تر بشویم.
در کد مثال زیر، یک برنامه پیچیده تر از مثال قبلی طراحی کرده ایم. در کد مثال قبل، جریان حرکت برنامه بسیار ساده و خطی بود. اما اگر کد ما در بین توابع و کلاس های مختلف حرکت کند، چه؟ برای این منظور به کد مثال زیر دقت کنید :

namespace DebugTest
{
class Program
{
static void Main(string[] args)
{
int a = 5;
int b = 2;
int result = MakeComplicatedCalculation(a, b);
Console.WriteLine(result);
}

static int MakeComplicatedCalculation(int a, int b)
{
return a * b;
}
}
}

در خط اول متد Main برنامه یک Breakpoint قرار داده و آن را اجرا نمایید. سپس از دکمه F10 برای حرکت بین خطوط برنامه و اجرای کدها استفاده کنید. همانطور که مشاهده خواهید کرد، برنامه از روی کد فراخوانی تابع بدون توجه عبور می کند. این حالت روش پیش بینی فرض Debugger است. اما بار دیگر اجرای کد را از اول شروع کرده و هنگام رسیدن به خط کد فراخوانی تابع Make Calculation()، از منوی Debug گزینه Step into را انتخاب کرده یا کلید میانبر F11 را فشار دهید. در این هنگام، برنامه وارد عملیات فراخوانی تابع شده و بدنه تابع را به صورت کامل پیمایش می کند. بنابراین با زدن دکمه F11 می توانید ریزعملیات اجرایی برنامه را هم بررسی کنید.
اما اگر وارد یک تابع شدید و در میانه راه خط هستید از مشاهده ادامه روند اجرای تابع صرف نظر کرده و به کد اصلی برنامه باز گردید، می توانید از منوی Debug گزینه “step out” را انتخاب کرده و یا دکمه shift +F11 را همزمان فشار دهید. در این حالت برنامه به ادامه کد پس از تابع بازگشته و به این صورت می توانید هرچند بار که خواستید وارد فراخوانی یک تابع شده و سپس در هنگام لزوم از آن خارج شوید.