如何在 C# Visual Studio 调试器中显示 1000 分隔符

How to display 1000 separator in C# Visual Studio debugger

处理大数字时,尤其是 long,必须用 1000 个分隔符显示它们。

有没有办法显示这些分隔符?

手表里面window?

将鼠标悬停在变量上时?

这在技术上是可行的,但并不简单。最简单的方法是创建第二个格式化变量并观察它。

我知道在手表 window 中执行此操作的唯一方法是您实际上可以 "watch" 通过在手表 window 中输入表达式作为对变量的编辑.该表达式将附加一个格式化的 toString。不过,这似乎不适用于数组。

假设您有一个变量 "total"。你的手表会显示总数,你会双击它并编辑它说 total.ToString("C");

希望对您有所帮助。

我建议您创建一个新数组 (stringNumbers),它具有千位分隔符并在手表中使用它 window 用于调试目的。完成调试后,您可以删除此数组。

int[] numbers = { 100000, 300000 };
string[] stringNumbers = numbers.Select(n => n.ToString("N")).ToArray();

你可以在watchwindow.

这里查看stringNumbers

如其他答案中所述,这不是直接可能的。因此,在 feature request 到达 Visual Studio 之前,您需要手动执行此操作。所以总结一下,你可以:

  • 使用 DebuggerDisplayAttribute 更改对象成员的显示方式(参见 this blog entry
  • 在您的代码中添加一个带有字符串表示的新变量(这很脏,因为您会在完成调试后将其删除)
  • 格式化Watch window中的数据(所以你首先需要在手表中添加你的数据window,当你将鼠标悬停在你的数据上时它不会起作用).例如
// For a long variable
myLong.ToString("N0")
// For a long array variable (that might slow VSNet down if you have tons of rows)
myLongArray.Select(l => l.ToString("N0"))