6

C# パブリック プロパティの既定値を設定する最も簡単な方法は何ですか?

// これにデフォルトを設定するにはどうすればよいですか?

public string MyProperty { get; set; }

プライベート プロパティを使用し、get/set パブリック プロパティを実装することを提案しないでください。これを簡潔に保つように努めており、なぜそれがはるかに優れているのかについて議論したくありません. ありがとう。

4

6 に答える 6

9

コンストラクターで初期化するだけです:

public class MyClass
{
    public string MyProperty { get; set; }

    public MyClass()
    {
        MyProperty = "default value";
    }
}

複数のコンストラクターがある場合は、それぞれがプロパティを設定するか、別のコンストラクターに委任するかを確認する必要があることに注意してください。

于 2010-07-26T14:13:54.357 に答える
5

コンストラクターでデフォルトを設定します。

this.MyProperty = <DefaultValue>;
于 2010-07-26T14:13:41.550 に答える
3

私有地を使用することを提案しないでください

これは、そのようなデフォルトを設定する標準的な方法です。気に入らないかもしれませんが、コンパイル後に自動プロパティ構文でさえ行うこと - プライベート フィールドを生成し、それを getter と setter で使用します。

コンストラクターでプロパティを設定できます。これは、可能な限りデフォルトに近いものになります。

于 2010-07-26T14:13:44.857 に答える
2

いいえ、プロパティをマークアップしてデフォルト値を示すことができればいいのですが、できません。本当に自動プロパティを使用したい場合は、プロパティ宣言でデフォルトを設定できません。

私が思いついた最もクリーンな回避策は、コンストラクターでデフォルトを設定することです。それはまだ少し醜いです。デフォルトはプロパティ宣言と同じ場所に配置されておらず、複数のコンストラクターがある場合は面倒になる可能性がありますが、それでも私が見つけた最高のものです

于 2010-07-26T14:15:33.483 に答える
2

プロパティの自動実装を使用する場合、唯一の実際のオプションは、コンストラクターでプロパティ値を初期化することです。

于 2010-07-26T14:15:43.040 に答える
1

C# 6.0 以降では、デフォルト値を自動プロパティに割り当てることができます。

public string MyProperty {get; set; } = "Default Value";
于 2016-11-05T07:11:28.300 に答える