2013年11月15日金曜日

C#のデバッグに便利な属性

DebuggerDisplay属性は結構昔からあるが、表示内容のカスタマイズができなくて不便だった。それを打破する方法を見つけた。

[DebuggerDisplay("なまえ={Name}, ねんれい={Age.ToString(\"X\")}")]
public class Example
{
    [DebuggerDisplay("非公開", Name = "名前")]
    public string Name { get; set; }

    [DebuggerDisplay("非公開", Name = "年齢")]
    public int Age { get; set; }

    [DebuggerStepThrough]
    public Example()
    {
        this.Name = "未定";
        this.Age = 255;
    }
}

ダブルクォーテーションにエスケープ文字をつけるのがポイントである。これで、ToStringにより表示形式を変更できる。ちなみに中括弧はエラーになるので、String.Formatは使えない。また、@文字列も使えない。


年齢が16進数になっているところに注目!

ToStringをオーバーライドすればいいんだけどね・・・

0 件のコメント:

コメントを投稿