Отображение двойного в ближайшем окне отличается от vs2013 / vs2017 - PullRequest
0 голосов
/ 08 марта 2019

У меня есть следующая строка кода:

double r = 0.000056262413896897934;

В visual studio 2013, я захожу к ближайшим окнам и набираю:

?r

И результаты отображают значение двойника:

0.000056262413896897934

Однако, если я открою проект в Visual Studio 2017 и введу его в ближайшем окне:

?r

Отображает следующий результат (экспоненциальный формат):

5.6262413896897934E-05

Я бы хотел, чтобы Visual Studio 2017 отображал формат так же, как Visual Studio 2013:

0.000056262413896897934

Не только для этой переменной или этого решения, но и для постоянной настройки. Кто-нибудь знает как это сделать? Заранее спасибо

1 Ответ

0 голосов
/ 09 марта 2019

Как уже упоминалось @Amy, вы можете использовать DebuggerDisplay, чтобы изменить внешний вид объекта в отладчике. Поскольку double является встроенным типом, вы не можете просто изменить его реализацию. Для подобных случаев отладчик имеет функцию, которая загружает в DebuggerDisplay внешние реализации, реализованные в autoexp.cs

  1. Откройте (как администратор) файл autoexep.cs, который должен находиться в каталоге, который выглядит следующим образом: C:\Program Files (x86)\Microsoft Visual Studio\16\Preview\Common7\Packages\Debugger\Visualizers\Original очевидно, что это изменится с вашей версией VS, но если вы будете искать autoexp.cs, вы найдете его.
  2. В этом файле добавьте следующий код: [assembly: DebuggerDisplay(@"{ToString(""F17""),nq}", Target = typeof(Double))], который скажет отладчику в основном выполнять ToString("F17") всякий раз, когда он отображает double.
  3. Откройте командную строку разработчика от имени администратора и перейдите к месту, где, например, autoexp.cs. C:\Program Files (x86)\Microsoft Visual Studio\16\Preview\Common7\Packages\Debugger\Visualizers\Original
  4. Создайте файл с помощью csc /t:library autoexp.cs
  5. Перезагрузите VS и запустите ваш сценарий

Затем вы должны увидеть что-то вроде:

Immediate window evaluating a double

Более подробная информация о DebuggerDisplay находится в наших документах по адресу: https://docs.microsoft.com/en-us/visualstudio/debugger/using-the-debuggerdisplay-attribute?view=vs-2017, а более подробная информация о реализации ToString для Double окончена по адресу: https://docs.microsoft.com/en-us/dotnet/api/system.double.tostring?view=netframework-4.7.2.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...