当您在Watch窗口中查看对象时,您看到的是ToString()方法产生的任何内容。但是,如果您可以控制显示的内容以便您可以看到一些有意义的值呢?好吧,你可以。
如果我们有一个这样Person定义的类:
namespace VSTips.DebuggerDisplay
{
class Person
{
public string FirstName { get; set; }
public string LastName { get; set; }
}
}
如果我们创建一个实例并在观察窗口中查看它,我们所看到的就是{VSTips.DebuggerDisplay.Person}。当然,我们可以深入查看各个属性,当您查看单个对象时,这并不是那么糟糕,但当您查看List<Person>并查看具体内容时,你知道你会花很多时间点击找到你要找的对象。
如果我们回到Person类的定义并添加属性,我们可以使监视窗口显示我们想要的任何内容。在这种情况下,我们将显示姓氏和名字的前5个字符(显示前5个只是为了展示灵活性)。
using System.Diagnostics;
namespace VSTips.DebuggerDisplay
{
[DebuggerDisplay("{LastName,nq},
{FirstName.Length >= 5 ? FirstName.Substring(0, 5) : FirstName,nq}")]
class Person
{
public string FirstName { get; set; }
public string LastName { get; set; }
}
}
当您使用此调试器显示查看监视列表时,您看到的内容会更有帮助。
原文地址:https://www.codeproject.com/Articles/1280597/Visual-Studio-Tips-DebuggerDisplay