C# Вывод текста визуализатора отладчика выровнен с выводом консоли в Visual Studio 2019 - PullRequest
0 голосов
/ 13 апреля 2020

Можно ли заставить визуализатор текста отладчика отображать выходные данные, которые выровнены так, чтобы соответствовать выводу консоли в VS2019? Или даже какой-то другой тип визуализатора, если уместно? У объекта DataTable есть хороший визуализатор отладки, но что, если вы работаете с объектами, которые не являются объектами DataTables?

Пример ниже дает пример. Мы проверяем объект printer.

Вывод консоли для printer правильно расположен, как и ожидалось:

enter image description here

Но если вы проверяете объект в режиме отладки, выходные данные визуализатора не будут правильно выровнены. Похоже, что пробелы имеют меньшее горизонтальное расстояние, чем буквенные символы c.

enter image description here

Код:

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();
        }
    }
}

1 Ответ

0 голосов
/ 13 апреля 2020

Используя предоставленный комментарий, быстрый поиск, включающий ключевые слова C# визуализатор текст с фиксированной высотой , обнаруживает, что это может быть специфическая c проблема с Visual Studio 2019. Эта проблема и один из способов ее устранения обсуждается здесь:

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

В настоящее время одним из обходных путей является go Инструменты -> Параметры -> Выберите вкладку Среда -> Шрифты и цвета -> В раскрывающемся списке выберите Среда и выберите шрифт с фиксированным шагом.

enter image description here

...