2011-07-21 51 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]屬性的功能,但無需停止,添加屬性,重新編譯並重新運行。 –