如何在 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"))
处理大数字时,尤其是 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"))