sgt*_*gtz 14 .net c# debugging visual-studio-debugging
我想在调试模式下让ToString()显示我控制下的类.
当你用鼠标悬停在一个变量上时,这是第一个出现的东西.这有属性吗?
Jal*_*aid 26
标记你的课程
[System.Diagnostics.DebuggerDisplay("{ToString()}")]
Run Code Online (Sandbox Code Playgroud)
测试:
[System.Diagnostics.DebuggerDisplay("{ToString()}")]
class MyClass
{
private string _foo = "This is the text that will be displayed at debugging"
public override string ToString()
{
return _foo;
}
}
Run Code Online (Sandbox Code Playgroud)
现在,当您将鼠标悬停在变量上时,它将显示This is the text that will be displayed at debugging
.
有DebuggerDisplayAttribute
可以让你影响显示.它允许您编写相当复杂的表达式来生成调试输出,但不建议这样做.
但是,如果您已覆盖ToString
,则会记录调试器以默认显示该调试器.也许代码有问题?
我有类似的问题。我的类有一个 ToString() 重写,但它仍然没有出现在 VS 中,这很奇怪。
将属性 [System.Diagnostics.DebuggerDisplay("{ToString()}")] 添加到类中会在 Visual Studio 调试器中显示异常,而 ToString 应该显示在其中。事实证明,我在实现中遇到了错误使用 string.Format() 的错误。这是一个有趣的行为 - VS 在发生异常时恢复默认的 ToString。使用上述属性会强制显示该方法的输出 - 有效或异常。这对于调试 ToString() 非常有用。否则,没有必要向每个类显式添加此属性,因为类默认打开该属性,除非出于某种原因想要关闭此行为。
归档时间: |
|
查看次数: |
3935 次 |
最近记录: |