C# 将代码分解为可管理的块
我有一个用C#编写的Windows窗体应用程序,其中一个窗体包含大量代码。我已经广泛使用了类来将表单代码保持在最低限度,但是由于表单有大量的选项卡页、数百个控件和数据网格等,因此表单本身的代码仍然很广泛C# 将代码分解为可管理的块,c#,winforms,C#,Winforms,我有一个用C#编写的Windows窗体应用程序,其中一个窗体包含大量代码。我已经广泛使用了类来将表单代码保持在最低限度,但是由于表单有大量的选项卡页、数百个控件和数据网格等,因此表单本身的代码仍然很广泛 是否有任何方法可以将此代码分解为更易于管理和更小的项,也许每个选项卡页的解决方案中都有一个项,同时将所有代码保持在同一范围内?属于用户控件表示层的代码,可以放入扩展控件的类中。从每个选项卡中提取代码,并创建一个用户控件以包含每个选项卡的代码。(您甚至可以从TabPage继承并在init上将其添加
是否有任何方法可以将此代码分解为更易于管理和更小的项,也许每个选项卡页的解决方案中都有一个项,同时将所有代码保持在同一范围内?属于用户控件表示层的代码,可以放入扩展控件的类中。从每个选项卡中提取代码,并创建一个用户控件以包含每个选项卡的代码。(您甚至可以从TabPage继承并在init上将其添加到表单中) 然后,可以将用户控件添加到每个选项卡中,这样可以显著减少代码
网格等也可以交给用户控件,以显示其他控件访问所需的方法和属性的最少数量。如果要反复定义表单控件,只需在其他选项卡上创建它们的新实例即可 创建getter和setter以访问此文件
但实际上,有很多表单控件的代码是没有问题的,我认为这就是它的方式。我以为VisualStudio应该使用?为您生成所有这些,您可以使用它将代码拆分为多个cs文件,但我真的看不出有什么好处,唯一的解决方案是进行全面重构,将与UI无关的代码删除到单独的类中。如果您正在寻找重构代码及其框架的方法,那么您必须了解这些原则。这是一篇很好的文章。如果您希望在不过度移动代码的情况下获得更好的可读性和维护性,您可以使用:
#region Tab 1
#region Variables
#endregion
#region Properties
#endregion
#region Methods
#endregion
#endregion
这将允许您在更改某个选项卡时最小化不感兴趣的部分代码。这并不完美,但可能会有所帮助。你基本上需要这样做。这是经典应用程序的常见问题,因此您必须遵守规则并决定如何整理。这不会是一个即时修复
查找/,甚至了解其他人如何分解代码。从那里,您可以引入适合您的分层体系结构
然而,你并不孤单。Visual Studio中的重构工具(甚至更好的)可以自动执行大量复制粘贴周期,消除错误并自动保持变量名等同步。我个人在区域方面有问题。它有时会抛出编辑器,您需要关闭并重新打开文件以重置它(我正在使用中,它可能是特定的),因此对于带有选项卡的大型表单,我倾向于使用分部类
在Visual Studio/SharpDevelop文件资源管理器中,您可以做的一个巧妙的技巧是将分部类的文件拖到该类的主文件上,这样它们都嵌套在MainForm下(紧挨着
.designer
和.resx
文件),这只会使事情更整洁。您可以始终使用分部类。然后尝试将演示关注点与其他关注点分开。MVP架构同样适用于Winforms,但我并不宽恕它。。但是,分部类可能适合您(如果您是唯一的开发人员)…您是在寻找重新构造代码,还是只想管理现有代码。?谢谢-这有助于更轻松地来回导航