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

Wpf App类的(App.Current as App).myValue和静态myValue之间有什么区别?,wpf,windows-phone-7,silverlight-4.0,Wpf,Windows Phone 7,Silverlight 4.0,将变量定义为App类中的静态成员是否有任何区别,如下所示: public static string myValue; // string value = App.myValue; public string myValue { set; get; } // string value = (App.Current as App).myValue 并使用(App.Current as App)检索应用程序的属性,如下所示: public static string myValue; // st

将变量定义为App类中的静态成员是否有任何区别,如下所示:

public static string myValue;
//
string value = App.myValue;
public string myValue { set; get; }
//
string value = (App.Current as App).myValue
并使用(App.Current as App)检索应用程序的属性,如下所示:

public static string myValue;
//
string value = App.myValue;
public string myValue { set; get; }
//
string value = (App.Current as App).myValue

如果
App
是从
Application
派生出来的,那么几乎没有什么区别

小的区别是在程序开始时(例如在
Main
中)
App。当前的
仍然是
null
,而静态属性已经可以访问。这是因为
应用程序
类不是真正的单例(或者说
Current
不会触发它的创建——至少对于WPF 3.5来说是这样)

当然,另一个小区别是,在第一种情况下,
myValue
是一个字段,而不是一个属性——因此一些期望属性(如绑定等)的场景将失败