DebuggerDisplay 属性を使用する必要があるのはいつですか? これを使用する利点は何ですか?
3 に答える
この記事はそれをよく説明しています。クラスでこの属性を使用して、デバッグ時により意味のあるテキストを表示できます。例: 次のクラスがあるとします。
[DebuggerDisplay("x = {x} y = {y}")]
MyClass
{
private int x;
private int y;
...
}
Visual Studio デバッガーで MyClass のインスタンスをデバッグし、その上にカーソルを合わせると (またはウォッチ ウィンドウに置くと、そこには表示されなくなります"MyClass"
が、代わりに"x = 4 y = 5"
(このインスタンスの x と y が現在この値を持っていると仮定します。これは単に記事で説明されているように、さらに多くのことができる例です。
いつ使用すべきかという質問に答えるために、意味のあるデータプロパティを持つビジネスオブジェクトであるすべてのクラスをお勧めします。特に重要なのは、コレクション内にあるクラスにとってです。結果ビューを展開するとコレクション内にあるクラスは完全修飾型名のみが表示されるため、各結果を個別に展開して、それがどのアイテムであるかを確認する必要があります。
ただし、DebuggerDisplay属性を使用すると、コレクションを含むコードをデバッグするときに、クイックウォッチウィンドウの結果ビューで最も重要と思われるプロパティを確認できます。
DebuggerDisplay属性は、デバッガーでクラスまたはフィールドを表示するときに、クラスまたはフィールドがどのように表示されるかを設定します。
たとえば、 の変数が Address 型であることを確認するのではなく、オブジェクトが格納しているアドレスをデバッガーに実際に表示させることができます。
デバッグが少し簡単になります。デバッグが簡単になれば、プログラマーの生活はもっと楽しくなります! ;-)