到目前为止,我一直用来自学代码的c#项目是一个包含大量函数和大量“全局”静态变量的巨大形式。
在这里阅读,做一些教程等之后,我现在正在尝试重构它以正确使用类和封装。
我的课程:
Program.cs
- 基本上只会初始化Form1
。Form1.cs
=生成并修改所有用户界面。在其他类中调用公共函数,并具有一些其他类可以调用以更新它的公共函数。UiStrings.cs
=包含所有错误消息,对话框,说明等。Options.cs
=跟踪一些设置,构建和更新安装文件的路径,根据更改的UI执行代码。Updater.cs
=跟踪当前版本,下载资源,将它们放在正确的位置,然后调整选项。Installer.cs
=根据当前选项处理安装/卸载/备份所有资产。 最初,我在Form1
中创建了其他每个类的实例。这适用于Form1
,以便能够访问UiStrings
或Options
中的函数和属性。然而,这些类无法访问彼此的部分,可能是因为它们尚未实例化。
这使我的目标是使我的所有自定义类如UiStrings
和Options
静态(因为我不需要其中任何一个的多个实例)。这也意味着我必须使每个类中的每个函数和属性都是静态的。
这是一个合理的解决方案,实际上知道他们正在做什么的人会来吗?
到目前为止,它似乎在我的测试中起作用,但我最初的尝试没有任何课程也工作得很好,直到我知道它是多么错误。
答案 0 :(得分:2)
如果您打开项目属性(右键单击解决方案资源管理器中的项目,右键单击,选择属性),您将找到UiStrings所针对的“资源”选项卡,以及“选项”所针对的“设置”选项卡。我建议将它们用作标准功能。这也消除了设计自己的要素类的需要。
除此之外,您可以将它们静态化,并且您不必创建类的副本来访问静态成员。语法是ClassName.Method()或ClassName.Property而不是var instance = new ClassName(); instance.Method();