Top > Programming > .NetFramework > Tips > Property > DefaultValueAttribute
Last-modified: Mon, 01 Apr 2013 14:07:19 JST
Counter:8293 Today:1 Yesterday:2 Online:5
このエントリーをはてなブックマークに追加

DefaultValue属性(Attribute)について

DefaultValue属性では初期化されない

プロパティの値を初期化する場合に、DefaultValue属性を利用すること望ましくありません。検索するとDefaultValueにそれらしいページがいくつか該当しますが、DefaultValue属性ではプロパティの値を初期化することはできないのです。つまり何もしないままDefaultValueを指定していても、得られる値は対象の型の規定値になります。

例えば次のようなプログラムを書いた場合に、出力される結果は0となります。

        public class SampleClassA
        {
            [DefaultValue(100)]
            public int SampleProperty
            {
                get;
                set;
            }

        }        
        public Main()
        {
            SampleClassA temp = new SampleClassA();
            Console.WriteLine(temp.SampleProperty);
        }

ではDefaultValueが何に利用されるかというと、VisualStudioなどのデザイナ(ウィンドウ)が参照する場合に利用されます。VisualStudioからプロパティを設定する場合の初期値として表示されます。カスタムユーザコントロールなどを利用する場合には利用することが考えられますが、やはり実際に初期化されるわけではないことに注意する必要があります。

プロパティの値を初期化する場合には、コンストラクタなどで任意に初期化するか、WPFアプリケーションなどではDependencyPropertyを利用することで初期値を指定することができます。

Reference