是否可以逐个调试结构/类初始化成员?

Mr.*_*Boy 5 c# visual-studio-2017 vscode-debugger

像这样初始化一个类:

var x = new Item()
{
 ID = (int)...,
 Name = (string)...,
 ..
};
Run Code Online (Sandbox Code Playgroud)

我在其中一项任务中收到 InvalidCastException。它们有很多,即使我逐行运行调试器,整个表达式也会发生异常。异常没有给出任何线索,它试图将什么转换为什么。

有没有办法单独调试每个作业?我已经看到调试器在表达式上分别停止了 3 次,foreach(x in y)所以在这里没有这样做似乎有点奇怪,并且有损使用这种方便的初始化语法的吸引力。也许我可以使用更细粒度的调试步骤?

IV.*_*IV. 5

您的问题是“是否可以按成员调试结构/类初始化成员?”。

所以,在前面,我没有直接回答这个问题,因为当我仔细阅读你的帖子的正文时,听起来基本问题是如何在这个 InvalidCastException 发生时确定它的“吸烟线”根本原因。

我在类似情况下发现,如果在 InvalidCastException 发生的那一刻可以使 Visual Studio 中断,即在该特定行上,那么调用堆栈和局部变量将更加直接和有用。

不幸的是,许多异常类型的 Visual Studio 默认设置禁止了“抛出时中断”。但是很容易为所有异常打开“抛出时中断”。只需在 Visual Studio 的“异常”窗口中更改此默认设置:

默认异常设置

对此:

在此处输入图片说明

这并不“总是”有帮助,但这是一个好的开始。如此简单,何不先尝试一下,看看是否有可能快速解决。希望这对您的情况有用。