c# - C# Windows 窗体应用程序中的全局变量方法? (公共(public)静态类 GlobalData 是最好的)

标签 c# winforms global-variables

我想在我的 C# Windows 窗体应用程序中提供一些自定义配置(从文件中读取)。

是概念说:

  1. 创建一个静态类,例如“公共(public)静态类 GlobalData”
  2. 从主窗体事件的“加载”操作加载

这听起来怎么样?这是最好的做法吗?

最佳答案

正如其他人所说,您可以使用 AppSettings 来存储简单数据。基础很简单;超越它们很难(参见 App.Config and Custom Configuration Sections )。您还可以将类序列化为 XML 或 JSON 、编写自定义存储格式、使用数据库等。

使配置在整个应用程序中可用是一个单独的问题。静态类和单例本质上很难test ,并介绍coupling在你的其他类(class)中。一种选择是为您的配置数据类创建一个接口(interface),在启动时创建和加载配置,然后将接口(interface) 传递给任何需要它的类(通常作为构造函数参数)。这叫做 Dependency Injection .

如果您经常这样做,有些库会让它变得更容易(在您通过学习曲线之后)。参见 List of .NET Dependency Injection Containers (IOC) .

关于c# - C# Windows 窗体应用程序中的全局变量方法? (公共(public)静态类 GlobalData 是最好的),我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/1515173/

相关文章:

c# - 返回一个实例

c# - 在 Linux 上运行 Windows 窗体应用程序

javascript - 存储值以便在以后的函数中使用的最佳方法是什么?我听说全局变量是邪恶的

flash - Flash AS3从MovieClip访问全局变量

c# - Bitmap.GetPixel() 返回错误值

c# - 选择具有多个期间时间字段的行

c# - 反序列化具有不同数据结构的 JSON

c# - DataGridView 同一列中可能有不同的单元格格式吗?

c# - 谁拥有控制权?

javascript - 使用 JavaScript 中的 switch 循环更改背景颜色