我想问那里的专业开发人员他们如何管理一个大窗口窗体类。partial
用关键字将其拆分到不同的文件中是个好主意吗?这就是我到目前为止所做的事情,但它会创建不必要的设计器文件,当你在 VS 中双击它们时,会弹出一个空白的 winform:
所以我所做的基本上是在一个文件中为每个相关的控件组分组事件和代码逻辑。
我想问那里的专业开发人员他们如何管理一个大窗口窗体类。partial
用关键字将其拆分到不同的文件中是个好主意吗?这就是我到目前为止所做的事情,但它会创建不必要的设计器文件,当你在 VS 中双击它们时,会弹出一个空白的 winform:
所以我所做的基本上是在一个文件中为每个相关的控件组分组事件和代码逻辑。
我的回答是“我没有”。如果您需要在一个类(在这种情况下是一个表单)中有很多代码,这通常意味着您的类正在做很多事情,您需要减少它的耦合度。实现这一点的一个好方法是使用一种 MVC 或 MVP 模式形式将逻辑放在另一个地方,并使用 UserControls,这样您就可以在不同的控件中拥有不同的功能(使用它们的控制器或演示者,具体取决于您是否实现 MVC或 MVP)。分而治之。
我不认为我是专家,但是一旦我们遇到了类似的问题,主要形式并没有停止成长。
解决方案只是 OOP,制作未附加且可重用的类,这些类可以位于具有内部可见性的同一个命名空间中。
例如,您有一个ComparisionForm.Menu,它看起来可以与 ComparisionForm 中的主代码分离。
从另一个角度来看“可读性”。- 部分类很有用,但考虑到即使在不同文件中划分代码,逻辑也不总是划分的,这使得代码难以阅读、理解并最终难以维护.
将我的课程按逻辑划分为我的解决方案。你知道他们说什么“分而治之”
我认为分离表单代码的最佳方法是使用 UserControl。
就我而言,当我有一个大类时,我使用区域而不是部分类。
不是专业人士,但我的两分钱是:没有大班。将大部分代码提取到其他类。
您还将获得,您将能够使用大多数方法private
,从而减少 Intellisense “噪音”。