2016-08-12 4 views
1

私は、次の使用:プライベートセッターでオブジェクトを初期化するには?

static public string myString { get; private set; } 

がどのように私は同時に値を設定することができますか?問題は私のクラスは静的なので、それは宣言で、私はそれが値を持っていることを確認する必要があります。

通常は静的でないクラスで使用するので、クラスのコンストラクタで値を設定します。

+1

あなたは静的なコンストラクタでそれを設定することができます... –

答えて

5

これが有効であるだけでC#6.0インチC#6.0の構文を追加します。

static public string myString { get; private set; } = "Hello"; 

あなたは(つまり、C#6.0の別の新機能です)、あなたのプログラム内のいくつかの後の時点でmyStringを設定するプロパティは読み取り専用にすることを検討することを計画していない限り:

static public string myString { get; } = "Hello"; 
+0

ありがとうたくさん!私は私のバージョンでそれをすることができないことを知っているので、私はSergey.quixoticaxis.Ivanov答えを使用します。あなたも本当に助けています。もし私が答えることができれば、私はその両方を答えにします。 –

+1

@MaximeJoyalあなたは心配しないでください。答えはまったく同じです。 C#6では、静的コンストラクタ内で変数を初期化するための構文ショートカットが追加されています。 –

4

静的コンストラクタ(MSDN)を使用してプロパティを初期化します。

2

別のオプション:

static public string myString { get; private set; } = "default value"; 
+0

C#6では正しいですが可能ですが。おそらく答えに同じことを言わなければならないでしょう。 – Rahul

+0

@Rahul:はい、私は知っています。私はそれがどんなバージョンであったかを覚えていなかったし、dasblinkenlightは彼のより完全な答えをその時に加えたので、私はチェックを気にしなかった。私はちょうど代わりに彼の答えをupvoted :) – sstan

関連する問題