C#入门之代码调试

不管是在代码编写时,还是代码运行的时候,我们会遇到各种各样的错误。我们今天就来看一看,怎么应对这些错误。

首先我们先看一下,在编写代码过程中遇到错误,怎么处理。在 Visual Studio 中,有一个功能叫做:跟踪点(tracepoint),通过改方法,我们可以逐步运行代码,找到出错的位置。

实验代码(函数那节使用的代码):

using System;

namespace ConsoleApp13
{
    class Program
    {
        static int Sum(int x, int y)   // 定义一个函数,需要传递两个参数,参数类型为 int
        {
            return x + y;    // 该函数将返回 x 与 y 的和
        }

        static void Main(string[] args)
        {
            Console.WriteLine("Please enter first number:");
            int firstNum = Convert.ToInt32(Console.ReadLine());
            Console.WriteLine("Please enter second number:");
            int secondNum = Convert.ToInt32(Console.ReadLine());
            int sum = Sum(firstNum, secondNum);   // 调用函数,并传递参数
            Console.WriteLine($"The sum is {sum}.");
        }
    }
}

我们找了一个前面的代码,选中你想要设置跟踪点的位置(在你怀疑有问题的代码部分的前面),右击该行代码,选择 Breakpoint > Insert Tracepoint;
https://ithelp.ithome.com.tw/upload/images/20210910/200994947KIdli8uvl.png

在弹出的窗口点击 Close,如果你想在运行代码的时候,输出一些变量的信息,你可以在 Show a message in the Output Window 的文本框中输入(变量名要输入 {} 中);
https://ithelp.ithome.com.tw/upload/images/20210910/20099494L1GZSYwEvL.png

此时,你会看到,该行代码的左边,多了一个圆形图标;
https://ithelp.ithome.com.tw/upload/images/20210910/20099494wcZeU4yuzh.png

点击 Debug 下的 start debuging 或 debug 图标,或按 F5,开始运行程序,此时你可以看到,左边的圆编程了一个箭头图标,告诉你下一步要运行的代码;
https://ithelp.ithome.com.tw/upload/images/20210910/20099494QnoE9avFhZ.png

此时的命令行窗口没有任何输出:
https://ithelp.ithome.com.tw/upload/images/20210910/20099494kbsWpodnrt.png

点击工具栏的下一步图标(关于每个图标的具体用途,可以将鼠标移到该图标上),此时箭头图标向下移了一步;
https://ithelp.ithome.com.tw/upload/images/20210910/20099494uHr0BuF4A6.png

此时命令行窗口有显示内容,等待输入:
https://ithelp.ithome.com.tw/upload/images/20210910/20099494oKCUQXYFHw.png

目前,还不能输入,我们需要再次按下一步图标,此时,你就可以在命令行窗口,输入内容了;
https://ithelp.ithome.com.tw/upload/images/20210910/20099494VVvTqR5PT3.png

再次按下一步,就可以继续输入第二个数了,这样,我们可以一步一步的执行代码,找到出错的代码行。

当完成 debug,我们可以通过同样的方式,删除跟踪点。右击跟踪点代码行,选择 Breakpoint > Delete Breakpoint 就可以删除跟踪点了。
https://ithelp.ithome.com.tw/upload/images/20210910/20099494Nn9rys4tpv.png


<<:  Day 10 无限循环照片

>>:  Day 10:新手杀,谁来教我离开 vim 阿~~

理解 HTTP(二):Method、Status Code

昨天大致谈了网站内容是怎麽被下载到电脑里的,今天稍微深入一点聊聊关於 HTTP 这个协定的一些简单并...

Day 2.来交朋友吧!-Vue.js是谁?

Vue 由前 Google 工程师尤雨溪在 2014 年 2 月所建立的一套开放源码(Open So...

股市小白混乱篇-使用 ticks API(2)

继昨天我们已经可以取得ticks的资料後, 有没有发现资料有点难看, 长长一串array很难观看, ...

为了转生而点技能-JavaScript,day6(初探物件构造及物件取值

物件(Object) 构造:物件就是多种属性的集合,里面有属性及值,其中属性只能是字串,增加属性利用...

Angular 深入浅出三十天:表单与测试 Day01 - 前言

何谓表单? 维基百科是这样说的: 表单是一种带有空格可用於书写以及能选择和勾选相似内容的文件。 表...