【问题标题】:C# Debugger text visualiser output aligned with Console output in Visual Studio 2019C# 调试器文本可视化器输出与 Visual Studio 2019 中的控制台输出对齐
【发布时间】:2020-04-13 19:02:35
【问题描述】:

是否可以让调试器文本可视化器显示与 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();
        }
    }
}

【问题讨论】:

  • @PerryQian-MSFT 我会说这更像是一个 hack/workaround,而不是一个好的解决方案,因为它使 Visual Studio 中的所有文本看起来都很古怪......如果 MSFT 可以在没有的情况下解决这个问题需要这个 hack 将不胜感激!

标签: c# debugging visual-studio-2019 visual-studio-debugging


【解决方案1】:

使用提供的评论,包括关键词 C# 可视化器固定间距文本的快速搜索显示这可能是 Visual Studio 2019 的一个特定问题。这里讨论了这个问题和一个解决方法:

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

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

【讨论】:

    猜你喜欢
    • 2012-05-05
    • 2020-04-19
    • 2015-08-12
    • 1970-01-01
    • 2012-12-05
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多