【发布时间】:2020-11-26 16:29:09
【问题描述】:
在下面的代码中,我声明了应用程序级别static 变量,然后从MainWindow.xaml.cs 访问它。应该避免在此处使用静态变量,而是首先在下面的MainWindow.xaml.cs 代码中实例化App class,并将那里的变量用作var app = Application.Current as App; app.myVariable = "Some Value";。我在某些地方(例如here)读到generally 我们应该避免使用静态变量。
App.xaml.cs:
public partial class App : Application
{
private static string myVarialbe {get; set;}
...........
}
MainWindow.xaml.cs:
public partial class MainWindow : Window
{
..........
private void btnUserUpdate_Click(object sender, RoutedEventArgs e)
{
App.myVariable = "Some value";
......
}
}
【问题讨论】:
-
您引用的帖子Using Static method and variables - Good vs Bad 已经有了答案。您定义了一个属性,而不是一个字段。所以,一切都好。如果需要,您可以添加同步。
-
@Jackdaw 是的,在该链接帖子的答案中,当我阅读
it seems like you are abusing the static keyword slightly这句话时,我看到一个黄色(如果不是红色)灯在闪烁。但是你的观点很好——我忘了注意到 OP 正在使用字段(而不是属性)。