在调试时更改我自己类型的值

时间:2017-02-22 15:15:11

标签: c# visual-studio debugging

当我在Visual Studio中调试代码时,我可以通过单击当我将鼠标悬停在我选择的变量上时弹出的叠加层来更改变量的值。显示值的标签变成一个文本框,我可以输入一个新的值,一旦我按下Enter键就会被分配。

为了支持这种工作流程,我必须在自己的类型中实现什么?目前,Visual Studio向我大喊,没有从字符串到我的类型的隐式转换。如果我添加这样一个隐式运算符,它可以正常工作,但是有另一种实现相同的方法,而不必将隐式转换添加到我的类型(好吧,我可以将转换标记为[Obsolete],这样任何人都无法调用它从代码 - 但这不是我猜的最干净的方式)就像[DebuggerDisplay]可以实现在调试时显示其他东西,同时让ToString()独立于任何业务逻辑需求?

1 个答案:

答案 0 :(得分:1)

  
    

显示值的标签变成一个文本框,我可以输入一个新的值,一旦我按下Enter键就会被分配。

  

您展示的解决方法是代码编辑器中的数据工具提示,这是我们在VS调试期间编辑值的常用方法。

我知道的其他解决方法是:

(1)使用natvis扩展名自定义调试视图。

例如,您可以为自定义数据类型创建类型可视化工具,如以下博客中的示例:

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

(2)使用某些调试窗口,如Watch窗口或其他,但我的理解不方便,我的意思是使用工具提示(你提供的方式)会更好。

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

希望它能提供有用的信息或路径。