1

像这样在 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
4

1 回答 1

2

如果App是从 导出的Application,则比几乎没有区别。

小的区别是在程序开始时(Main例如在 中)App.Current仍然是null,而静态属性已经可以访问。这是因为Application该类不是真正的单例(或者更确切地说,Current它不会触发它的创建——这种行为至少适用于 WPF 3.5)。

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

于 2012-04-16T11:09:39.053 回答