2017-03-31 19 views
0

アドインオプションページにいくつかの値を設定するOutlookアドインがあります。そのような設定の値に初期化されているプロパティは、ありますOutlookアドインの設定と自動実装のプロパティ

public string Prop1 { get; } = Properties.Settings.Default.Setting1;

Properties.Settings.Default.Setting1の値がアドインオプションページから実行時に変更された場合私の質問は、プロパティは変更が反映されますか?

私はそれを初期化しているプロパティの値を保持する隠れたバッキングフィールドを生成することを理解しています。

ので、プロパティは

public string Prop1 
{ 
    get { 
     return Properties.Settings.Default.Setting1; 
    } 
} 

と等価ではありませんが、Prop1Properties.Settings.Default.Setting1の変更された値を反映しないだろうことを意味する

public string Prop1 
{ 
    get { 
     return hidden_backing_field; 
    } 
} 

です。

このようなケースはどうすれば処理できますか?オプションが変更されるたびにプロパティを再設定する必要がありますか?

自動実装されたプロパティで私の混乱を解消するのを手伝ってくれてありがとうございます。

答えて

1

はい、プロパティは、オブジェクトの作成時に1回だけ初期化されます。単に常に望ましい値を返すのではないでしょうか?

public string Prop1 
{ 
    get { 
     return Properties.Settings.Default.Setting1; 
    } 
} 
+0

これは最善の方法です。自動実装されたプロパティは、ここで使用する正しいものではないと思います。 – shenk

関連する問題