什么是(App.Current as App).myValue和App类的静态myValue之间的区别?

时间:2012-04-16 11:01:16

标签: wpf windows-phone-7 silverlight-4.0

将变量定义为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

1 个答案:

答案 0 :(得分:2)

如果App来自Application,则几乎没有差异。

差异在于程序的开头(例如MainApp.Current仍为null,而静态属性已经可以访问。这是因为Application类不是真正的单例(或者Current不会触发它的创建 - 这种行为至少对于WPF 3.5来说。)

另一个小差异当然是在第一种情况下myValue是一个字段而不是一个属性 - 所以一些期望属性(如绑定等)的场景会失败。