我有一个outlook addin,它在addin选项页面中设置了一些值。然后有属性初始化为设置的值,如下所示:
public string Prop1 { get; } = Properties.Settings.Default.Setting1;
我的问题是,如果在运行时通过addin选项页面更改了Properties.Settings.Default.Setting1
的值,该属性是否会反映更改?
根据我的理解,它会生成一个隐藏的后备字段来保存我正在初始化它的属性的值。
所以该属性不等于
public string Prop1
{
get {
return Properties.Settings.Default.Setting1;
}
}
但是
public string Prop1
{
get {
return hidden_backing_field;
}
}
这意味着Prop1
不会反映Properties.Settings.Default.Setting1
的更改值。
我该如何处理这种情况?每次更改选项时,我是否需要确保重新设置属性?
提前感谢您帮助我解决与自动实施的属性混淆的问题。
答案 0 :(得分:1)
是的,在创建对象时,属性只会初始化一次。为什么不总是返回所需的值?
public string Prop1
{
get {
return Properties.Settings.Default.Setting1;
}
}