在Windows表单中,C#,.NET 3.5,VS2008 ...

从我的其余表格中隔离Menustrip(或任何复杂的对照组)的代码(或任何复杂的对照组)以及子菜单项的好方法是什么?

例如,当我有一个带有许多菜单的Menustrip,并且每个菜单都有许多菜单项,所有菜单项都有单击事件时,将一吨代码播放到form.desinger.cs.cs文件和form.cs.cs中。文件。这在技术上并没有引起任何问题,而是感觉到很多东西都倾倒在一个地方(以及形式的其他所有内容)感到错误。

在我的整个项目上运行代码指标,表格被标记为具有任何项目文件中最差的可维护性索引。通常,我对了解代码指标工具的方向不太教条,但是在这种情况下,我完全同意。

根据代码指标,该表格违反了这些最佳实践:

  1. 课堂耦合太多
  2. 代码太多
  3. 总体低可维护性

将Menustrip与其他形式分离的可能解决方案:

  1. 将其塞入Usercontrol
  2. 其他想法?
有帮助吗?

解决方案

我认为您应该关注隔离业务逻辑与演示文稿逻辑的孤立逻辑,例如,在单击处理程序中不会放置太多代码,也不会为菜单项实现命令。

确保您的代码指标不会触摸生成的代码,也不会注意自动化代码中的错误指标。

其他提示

例如,您可以禁用或过滤codeMetrics,以免抓取 *.designer.cs吗?

如果没有,我将使用工厂类,以便您可以一行创建这些结构。这对此的偏低是它降低了设计师的功能。在工厂中,您可以根据模板字符串 +“ _filemenu”命名每个组件,以便在工厂构造函数中设置基本“名称”。

要减少您的form.cs文件中的代码,请考虑更多的MVC方法,以便在设计师生成时,说一个 private void button1_Click 方法,您将某些业务逻辑抽取到其他类的其他方法中。因此,而不是移动所有文件,而是 button1_Click 将会通知 InitiateMoveFileMethod( string source, string destination ), , 例如。

许可以下: CC-BY-SA归因
不隶属于 StackOverflow
scroll top