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 的一个特定问题。这个问题和此处讨论了一种解决方法:

https://developercommunity.visualstudio.com/content/problem/653607/visual-studio-debugger-text-visualizer-font-is-not.html

目前的一种解决方法是前往 工具 -> 选项 -> Select 环境选项卡 -> 字体和颜色 -> 在下拉 select 环境中,选择固定间距字体。