atsukanrockのブログ

Microsoft系技術を中心にぼちぼち更新します

DefaultValue属性の使われ方

カスタムコントロールを作成する際、プロパティの既定値を指定するためには、プロパティにDefaultValue属性を適用する。ただし、このプロパティが使われるうのは、以下の局面に限られる。

  • Visual Studioのデザイナが、プロパティウィンドウを表示するとき
  • Visual Studioのデザイナ上でプロパティ値が指定された際、その値をマークアップに記述するかどうかをコードジェネレータが判断するとき

つまり、DefaultValue属性を適用したからといって、実行時にそのプロパティに自動的にデフォルト値が設定されるわけではない。なので、プロパティ値が設定されていない場合にデフォルト値で動作するよう、プログラムを実装する必要があるということだ。
最悪なのは、DefaultValue属性値とプログラムの実装が異なっている場合で、実行時にはあくまでプログラムの実装のとおりに動作する。発見しにくいバグとなる可能性が高い。