c# - 如何在调试时使用 ToString 以外的委托(delegate)来显示对象的值?

标签 c# .net debugging tostring

.NET/Visual Studio 使用对象的 ToString() 方法在调试器中查看对象时显示对象的值。我想显示具体信息,但由于框架在将对象转换为字符串时经常使用 .ToString(),因此我无法通过覆盖 ToString() 来实现。是否有一个属性可以用来告诉调试器使用不同的方法或属性?

最佳答案

使用DebuggerDisplayAttribute [MSDN] 。您为它提供一个格式字符串,该字符串引用类中的字段/属性以在调试时显示,而不必弄乱 ToString()

[DebuggerDisplay("Count = {count}")]
class MyHashtable
{
    public int count = 4;
}

它也适用于方法:

[DebuggerDisplay("{ToDebugString()}")]
public class SomeClass
{
    public override String ToString()
    {
        return "Normal ToString()";
    }

    public String ToDebugString()
    {
        return "ToDebugString()";
    }
 }

关于c# - 如何在调试时使用 ToString 以外的委托(delegate)来显示对象的值?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/9914321/

相关文章:

c# - 使用 OledbConnection 的 Linq to XML 和 Excel 之间的速度差异?

c# - 如何通过 WCF 设置 SSL?

c# - Model3DCollection 和 Model3DGroup 有什么区别?

c++ - GDB 找不到源文件

c# - 在 C# 中解析 json w 变量键值对

c# - window 管道故障

c# - 我应该从哪里升级到来自 .NET 2.0/WinForms 背景的复杂 .NET 3.5 和 WPF 应用程序?

java - 不幸的是 MyApp 已停止。我该如何解决这个问题?

Java:断点如何阻止小程序绘画而不*被绊倒*?

c# - 更改 xaml 中切换按钮的图标样式