2

重複の可能性:
静的プロパティのデフォルト値

クラスの通常のデフォルト プロパティにデフォルト値を割り当てることができます。しかし、私は以下のようなクラスの静的デフォルト プロパティにデフォルト値を割り当てることができません:-

    public class AppInstance
{
    [DefaultValue(25)]
    public static int AppType { get; set; }
}

AppInstance.AppType を呼び出すと、25 ではなく常に 0 が返されます。なぜですか? プライベート変数宣言を使用せずに解決するにはどうすればよいですか?

4

3 に答える 3

5

は、どの値がフォームまたはコントロールのプロパティの既定値であるかをデザイナーにDefaultValueAttribute伝えるだけです。WinFormsプロパティに別の値がある場合、この値はプロパティ ウィンドウに太字で表示されます。しかし、実際には値を設定しません。

静的コンストラクターで値を割り当てる必要があります

static MyClass()
{
    AppType = 25;
}
于 2012-04-25T14:10:35.097 に答える
2

静的コンストラクターを使用できます。最初のインスタンスが作成される前、または静的メンバーが参照される前に、クラスを初期化するために自動的に呼び出されます。

public class AppInstance
{
    public static int AppType { get; set; }

    static AppInstance()
    {
        AppType = 25;
    }
}
于 2012-04-25T14:09:24.793 に答える
0

get; set;このシナリオでを使用して作成される静的メンバーの使用はわかりません。多分誰か他の人ができますか?

だから、私はおそらくこれを行うでしょう:

public class AppInstance
{
    public static int AppType = 25;
}
于 2012-04-25T14:11:47.817 に答える