XIKEW.COM - 实用教程 - C# 8.0&.NET Core 3.0调试代码 - 实用教程,C# 8.0, .NET Core 3.0,Modern Cross-Platform Development, Chapter 4 , Writing, Debugging, and Testing Functions - 关于《C# 8.0 And .NET Core 3.0 Modern Cross-Platform Development》第四章调试代码主要对自定义断点的使用及Visual Studio Code变量输出做了介绍

C# 8.0&.NET Core 3.0调试代码
NETCORE 5/26/2020 9:22:42 PM 阅读:11

关于《C# 8.0 And .NET Core 3.0 Modern Cross-Platform Development》第四章调试代码主要对自定义断点的使用及Visual Studio Code变量输出做了介绍

关键字:C# 8.0, .NET Core 3.0,Modern Cross-Platform Development, Chapter 4 , Writing, Debugging, and Testing Functions

自定义断点

轻松创建更复杂的断点是很容易的。

  1. 如果当前仍在调试状态请单击“停止”按钮或快捷键Shift + F5停止调试。 img
  2. 在当前窗口中单击工具栏中的"调试"按钮,以“删除所有断点”或使用快捷键Ctrl+Shift+F9删除所有断点。
  3. 选择一行要注释的代码
  4. 通过按F9或单击断点区域来添加断点。
  5. 右键单击刚刚添加的断点选择编辑"条件" img
  6. 开始调试并注意未找到断点。
  7. 停止调试。
  8. 修改代码
var a = 1;
  1. 开始调试并注意断点被击中。
  2. 停止调试。
  3. 编辑断点并添加条件命中次数,然后输入一个类似2的数字,这意味着您必须先击中断点2次才能激活它。 img

Visual Studio Code输出变量的值使用

Visual Studio 开发者可以跳过这一章节

对于经验丰富的.NET开发人员,LINQPad是他们最喜欢的工具之一。 对于复杂的嵌套对象,可以将它们的值快速输出到工具窗口中很方便。

更多信息:虽然有LINQPad的名称但它不仅用于LINQ,而且还用于任何C#表达式,语句块或程序。 如果您在Windows上工作,我建议您使用它,并可以通过以下链接了解有关它的更多信息:https://www.linqpad.net

对于跨平台的类似工具,我们也可以使用SharpPad扩展Visual Studio Code。

  1. 在Visual Studio代码中,导航到 View | Extensions
  2. 搜索SharpPad,然后单击 Install
  3. 创建一个名为Dumping的文件夹,将其添加到工作区,然后在该文件夹中创建一个控制台应用程序项目。
  4. 先通过Nuget安装SharpPad,在Terminal中,输入以下命令以将SharpPad软件包添加到Dumping项目中:
dotnet add package SharpPad
  1. 打开Dumping.csproj并记下软件包引用,如以下标记中突出显示的内容:
<Project Sdk="Microsoft.NET.Sdk">
    <PropertyGroup>
        <OutputType>Exe</OutputType>
        <TargetFramework>netcoreapp3.0</TargetFramework>
    </PropertyGroup>
    <ItemGroup>
        <PackageReference Include="SharpPad" Version="1.0.4" />
    </ItemGroup>
</Project>
  1. 修改Program.cs以导入SharpPad和System.Threading.Tasks命名空间,将Main方法的返回类型更改为async Task,定义一个复杂的对象变量,然后将其转储到SharpPad窗口中,如以下代码所示:
using System;
using SharpPad;
using System.Threading.Tasks;
using static System.Console;
namespace Dumping
{
    class Program
    {
        static async Task Main(string[] args)
        {
            var complexObject = new
            {
                FirstName = "Petr",
                BirthDate = new DateTime(
            year: 1972, month: 12, day: 25),
                Friends = new[] { "Amir", "Geoff", "Sal" }
            };
            WriteLine($"Dumping {nameof(complexObject)} to SharpPad.");
            await complexObject.Dump();
        }
    }
}
  1. 运行应用程序并查看结果,如以下屏幕截图所示: img