2012-03-28 31 views
7

.NET/Visual Studio使用對象的ToString()方法在調試器中查看對象時顯示對象的值。我想顯示特定的信息,但由於.ToString()在將對象轉換爲字符串時經常被框架使用,我不能通過覆蓋ToString()來實現。是否有一個屬性可以用來告訴調試器使用不同的方法或屬性?如何在調試時使用ToString以外的委託顯示對象的值?

回答

12

使用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()"; 
    } 
} 
+0

真棒,我看到在智能感知這個屬性,但我沒有意識到的價值可能被標記化。這更有意義。謝謝! – 2012-03-28 19:39:21

相關問題