2017-02-22 26 views
0

Когда я отлаживаю код в Visual Studio, я могу изменить значения переменных, щелкнув по наложенному наложению, когда я нахожусь над моей переменной выбора. Метка, которая отображает значение, превращается в текстовое поле, и я могу ввести новое значение, которое присваивается сразу после ввода.Изменение значения моего собственного типа при отладке

Что мне нужно реализовать в своих собственных типах, чтобы поддерживать этот рабочий процесс? В настоящее время Visual Studio кричит мне, что нет никакого неявного преобразования из строки в мой тип. Если я добавлю такой неявный оператор, он отлично работает, но есть ли другой способ добиться того же, не добавляя неявное преобразование в мой тип (ну, я мог бы отметить преобразование как [Obsolete], так что никто не может назвать это из кода, но это не самый чистый способ, я думаю), так же как [DebuggerDisplay] может добиться отображения чего-то еще при отладке, оставив ToString() независимо от того, что требует бизнес-логика?

+1

Отладка, подобная этому, является материалом последнего типа, как часто вам это нужно делать? – DavidG

+0

Если существует механизм, требующий только одного атрибута, чтобы сказать, какую функцию вызывать для преобразования, то почему бы не использовать его ... – David

ответ

1

метка, которая отображает значение превращается в текстовом поле, и я могу ввести новое значение, которое получает назначенное как только я попал войти.

Обходной вы показать это ToolTips данных в редакторе кода, это обычный способ, которым мы изменить значение во время отладки VS.

Другие обходные пути я знаю, что:

(1) Выборочный вид отладки с расширением natvis.

Например, можно создать тип визуализатор для пользовательского типа данных, например, образец в следующем блоге:

https://blogs.msdn.microsoft.com/vcblog/2012/07/12/debugger-type-visualizers-for-c-in-visual-studio-2012/

(2) Используйте определенное окно отладки, как смотреть окно или другие, но мое понимание это не удобно, я имею в виду, что использовать подсказки (способ, которым вы предоставляете) было бы лучше.

https://msdn.microsoft.com/en-us/library/aa6fy2x5(v=vs.120).aspx

Надеется, что это может дать полезную информацию или путь.

+0

Ссылка, предоставленная вами в соответствии с (1), относится к C++. Подходит ли подход к C#? – David

+0

@David, хороший вопрос. мы не можем загрузить файл .natvis из проектов C#, у него действительно есть ограничение. Но мы можем написать Visualizer в C#: https://msdn.microsoft.com/en-us/library/ms164759.aspx. Другие участники также задавали аналогичную проблему раньше, когда обходной путь использовался только с помощью DebuggerTypeProxy. http://stackoverflow.com/questions/41764714/how-to-use-visual-studio-text-visualizer-for-custom-types. Не найдено другого лучшего способа обхода. –

+0

@ Давид, как насчет этой проблемы? Получаете ли вы полезную информацию из моих предыдущих предложений? Любое обновление, не стесняйтесь поделиться им здесь :) –

Смежные вопросы