gpt4 book ai didi

c# - 多个类和表单的样式/架构健全性检查

转载 作者:行者123 更新时间:2023-11-30 12:32:02 24 4
gpt4 key购买 nike

到目前为止,我一直用来自学编码的 c# 项目是一个包含大量函数和大量“全局”静态变量的巨大形式。

阅读此处、完成一些教程等之后,我现在正尝试完成重构它以正确使用类和封装的过程。

我的类(class):

  • Program.cs - 基本上除了初始化 Form1 什么都不做。
  • Form1.cs = 生成并修改所有 UI。调用其他类中的公共(public)函数,并有一些其他类可以调用的公共(public)函数来更新它。
  • UiStrings.cs = 包含所有错误消息、对话框、说明等。
  • Options.cs = 跟踪一些设置,构建和更新安装文件的路径,根据不断变化的 UI 执行代码。
  • Updater.cs = 跟踪当前版本、下载 Assets 、将它们放在正确的位置并调整选项。
  • Installer.cs = 根据当前选项处理安装/卸载/备份所有 Assets 。

最初,我在 Form1 中为每个其他类创建了一个实例。这使 Form1 能够访问 UiStringsOptions 中的函数和属性。然而,这些类不能访问彼此的一部分,大概是因为它们没有被实例化。

这促使我将所有自定义类(如 UiStringsOptions)设为静态(因为我不需要其中任何一个的多个实例)。这也意味着我必须将每个类中的每个函数和属性也设为静态。

这是一个真正知道自己在做什么的人会想到的合理解决方案吗?

到目前为止,它似乎在我的测试中有效,但我最初完全没有类(class)的尝试也工作得很好,直到我发现它有多么错误。

最佳答案

如果您打开项目属性(在解决方案资源管理器中右键单击项目,右键单击,选择属性),您将找到资源选项卡,这是您的 UiStrings 的用途,以及设置选项卡,这是您的选项的用途。我建议将它们用作标准功能。这也消除了设计您自己的要素类的需要。

除此之外,您可以将它们做成静态的,并且您不必创建一个类的副本来访问静态成员。语法是 ClassName.Method() 或 ClassName.Property 而不是 var instance = new ClassName();实例.方法();

关于c# - 多个类和表单的样式/架构健全性检查,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/12292600/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com