2012-03-28 13 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

恐ろしい、私はインテリセンスでその属性を見ましたが、私は値をトークン化することができ実現しませんでした。これははるかに理にかなっています。ありがとう! –

関連する問題