2011-07-21 56 views
4

有没有办法指定在监视窗口中看到的对象的成员,而不用展开具有所有属性的树。例如:Visual Studio中的监视窗口

p =新点(10,10)将显示在值的列中:{X = 10 Y = 10}

对于我自己的课程,它始终显示:{MyNamespace.MyClass}或{MyNamespace.MyStruct}

我可以改变这个以显示:{MyStringProperty =“”MyIntProperty = 0 ...“

+1

如果实现ToString()方法,将显示其结果而不是类/结构名称。 – jirkamat

回答

6

Using DebuggerDisplay Attribute

如果您已经通过一个属性标记类:

[DebuggerDisplay("x = {X} y = {Y}")] 
public class MyClass 
{ 
    public int X { get; private set; } 
    public int Y { get; private set; } 
} 

输出在监视窗口的值列出现会像下面:

x = 5 y = 18 
+1

非常感谢。 – paccic

2

您可以使用BugAid(Visual Studio的附加组件),它允许您在不扩展树的情况下查看您想要查看的成员,而无需停止调试以重新编译代码。

请参见下面的屏幕截图例如:

Stars Feature

全面披露:我是 “BugAid” 的共同创造者。

+0

此功能是在Visual Studio 2010中构建的,试试在弹出窗口中锁定任何属性/字段 – sll

+1

实际上,不,这完全是一个不同的功能 - pinning会持久保留单个对象的单个属性,以便它悬停在你的代码编辑器。与[DebuggerDisplay]属性非常相似,Stars定制给定类型的** all **值的方式将显示在DataTip中,并在调试会话中记住。它们基本上执行[DebuggerDisplay]属性的功能,但无需停止,添加属性,重新编译并重新运行。 –