2010-12-01 7 views
0

私はABCの変数xがインスタンス化されていると言います。 xの値を見ると、x.ToString()メソッドの値が表示されます。VIsual Studioウォッチウィンドウはどのように変数の値を取得しますか?

ここで、値の列に表示される値はどこから来る可能性がありますか?

感謝すべてのヘルプ、

おかげで、

Dattebayo

+0

明らかにあなた自身の質問に正しく答えました。ウォッチウィンドウは、そのToStringメソッドを呼び出すことによって変数の値を取得します。だからあなたの*実際の質問は何ですか? –

+0

ToString()がオーバーライドされ、間違った値が表示されるその他の方法はありませんか? (クラスの属性や、ウォッチウィンドウのvalue列に表示されている値を上書きできるものなど) – dattebayo

+0

表示値を上書きする可能性のあるものが見つかりました。 DebuggerDisplayAttribute型の属性を使用する。 ウォッチウィンドウでウォッチしているアイテムの値が取得される場所はありますか? – dattebayo

答えて

2

あなたがウォッチウィンドウでの値]列の下に表示されるテキストは、次の3つのソースのいずれかから来ることができました。あなたはそれをユーザーに提示する方法をデバッガに伝えるタイプABC、上DebuggerDisplayAttribute

  • を述べてきたように
    1. オブジェクトのToString()メソッド

      、。
    2. "ABC"クラスがDebuggerTypeProxy属性で装飾されている場合は、プロキシタイプに含まれる.ToStringまたはDebuggerDisplay文字列が表示されます。

    私の知る限りでは、これらは唯一の3つのオプションです。

  • 関連する問題