C# 调试器文本可视化器输出与 Visual Studio 2019 中的控制台输出对齐
C# Debugger text visualiser output aligned with Console output in Visual Studio 2019
是否可以让 Debugger 文本可视化工具显示与 VS2019 中的控制台输出对齐得很好的输出?或者如果合适的话,甚至是其他类型的可视化工具? DataTable
对象有一个很好的调试可视化工具,但是如果您使用的对象不是 DataTables 怎么办?
下面的例子给出了一个例子。我们正在检查 printer
对象。
printer
的控制台输出符合预期:
但是,如果您在调试模式下检查对象,则可视化工具输出不会正确对齐。看起来空格的水平距离小于字母数字字符。
代码:
using System;
using System.Diagnostics;
namespace visualiser
{
[DebuggerDisplay("{" + nameof(DebuggerDisplay) + ",nq}")]
public class Printer
{
private string[] columns = {"price", "quantity"};
private double[] values = {12.10, 2};
private string DebuggerDisplay => ToString();
public override string ToString() => StackedStrings();
private string Top()
{
const int padForPeriod = 1;
const int msDigits = 3;
var corner = string.Empty.PadRight(
19 + padForPeriod + msDigits, ' ') + "|" +
columns[0].PadLeft(15) + "|" +
columns[1].PadLeft(15) + "|";
return corner;
}
private string PrintRow()
{
var str = "2018-10-16 17:00:02.115|";
str = str + values[0].ToString().PadLeft(15) + "|" + values[1].ToString().PadLeft(15) + "|";
return str;
}
public string StackedStrings()
{
var str = string.Join(Environment.NewLine, PrintRow());
str = string.Join(Environment.NewLine, Top(), str);
return str;
}
}
class Program
{
static void Main(string[] args)
{
var printer = new Printer();
Console.WriteLine(printer);
Console.ReadKey();
}
}
}
使用提供的评论,快速搜索包括关键词 C# visualizer fixed pitch text 揭示这可能是 Visual Studio 2019 的一个特定问题。这个问题和此处讨论了一种解决方法:
目前的一种解决方法是前往
工具 -> 选项 -> Select 环境选项卡 -> 字体和颜色 -> 在下拉 select 环境中,选择固定间距字体。
是否可以让 Debugger 文本可视化工具显示与 VS2019 中的控制台输出对齐得很好的输出?或者如果合适的话,甚至是其他类型的可视化工具? DataTable
对象有一个很好的调试可视化工具,但是如果您使用的对象不是 DataTables 怎么办?
下面的例子给出了一个例子。我们正在检查 printer
对象。
printer
的控制台输出符合预期:
但是,如果您在调试模式下检查对象,则可视化工具输出不会正确对齐。看起来空格的水平距离小于字母数字字符。
代码:
using System;
using System.Diagnostics;
namespace visualiser
{
[DebuggerDisplay("{" + nameof(DebuggerDisplay) + ",nq}")]
public class Printer
{
private string[] columns = {"price", "quantity"};
private double[] values = {12.10, 2};
private string DebuggerDisplay => ToString();
public override string ToString() => StackedStrings();
private string Top()
{
const int padForPeriod = 1;
const int msDigits = 3;
var corner = string.Empty.PadRight(
19 + padForPeriod + msDigits, ' ') + "|" +
columns[0].PadLeft(15) + "|" +
columns[1].PadLeft(15) + "|";
return corner;
}
private string PrintRow()
{
var str = "2018-10-16 17:00:02.115|";
str = str + values[0].ToString().PadLeft(15) + "|" + values[1].ToString().PadLeft(15) + "|";
return str;
}
public string StackedStrings()
{
var str = string.Join(Environment.NewLine, PrintRow());
str = string.Join(Environment.NewLine, Top(), str);
return str;
}
}
class Program
{
static void Main(string[] args)
{
var printer = new Printer();
Console.WriteLine(printer);
Console.ReadKey();
}
}
}
使用提供的评论,快速搜索包括关键词 C# visualizer fixed pitch text 揭示这可能是 Visual Studio 2019 的一个特定问题。这个问题和此处讨论了一种解决方法:
目前的一种解决方法是前往 工具 -> 选项 -> Select 环境选项卡 -> 字体和颜色 -> 在下拉 select 环境中,选择固定间距字体。