将变量定义为App类中的静态成员是否有任何区别:
public static string myValue;
//
string value = App.myValue;
并使用(App.Current as App)检索App的属性,如下所示:
public string myValue { set; get; }
//
string value = (App.Current as App).myValue
答案 0 :(得分:2)
如果App
来自Application
,则几乎没有差异。
差异在于程序的开头(例如Main
)App.Current
仍为null
,而静态属性已经可以访问。这是因为Application
类不是真正的单例(或者Current
不会触发它的创建 - 这种行为至少对于WPF 3.5来说。)
另一个小差异当然是在第一种情况下myValue
是一个字段而不是一个属性 - 所以一些期望属性(如绑定等)的场景会失败。