【发布时间】:2013-10-21 20:50:36
【问题描述】:
我了解静态和实例的概念,但我很困惑当我有一个只有一个实例的类时应该使用哪个实例,该实例是在我的应用程序开始时调用的实例 (=Application.Current .MainWindow)
我想在我的程序中保留一个我需要的列表,贯穿不同的课程。 我是否应该将其设为静态,因为永远不会存在 2 个 MainWindow 实例?或者我应该让它成为非静态的,因为听起来它属于实例是正确的?
如果我选择使它成为非静态的,这也意味着我总是需要在其他类中使用“(MainWindow)Application.Current.MainWindow”来引用它,这很烦人
在这里将列表设为静态会“不好”吗?
【问题讨论】:
-
一堆其他类进入这个窗口来操作它拥有的列表通常看起来是错误的。这表明您的程序的控制已反转。这些其他类更有可能触发事件,其中包含应添加/删除的项目等信息。或者,至少,您应该在构造时将列表传递给这些其他类,这样即使这些其他类完全被其他类使用,它们也能正常工作。
-
你应该遵循你的编码习惯。你认为最适合你的,就用那个。如果没有其他人编辑您的代码可能会提出异议;你没事。代码由您定义。