C#移动自动生成的代码以更好地构造代码

时间:2017-11-01 12:20:43

标签: c# forms visual-studio structure

我对C#很陌生,想知道是否有一种简单的方法可以将自动生成的代码移动到单独的类文件中?

例如,如果我创建一个窗体,我拖动一个按钮。然后,如果我双击该按钮,它会在主Form1命名空间和类下自动生成一个click事件处理程序。有没有办法我可以将这个代码移动到一个单独的文件(可能是一个class.cs文件),如果我想以一个整洁的方式构建我的代码而不是一个不断增长的主要?

所有快速而肮脏的'Hello World'风格的C#示例只是向您展示如何以上述方式向表单添加项目......他们似乎没有考虑如何构建大型代码的最佳实践将代码结构化为单独文件的开发可能是有益的。我正在考虑的是必要的,还是开发人员使用标准的点击处理程序(在主窗体中留下),然后使用它来调用包含类/方法的外部参考文件???

如果你们能够指导人们用来构建基于C#表单的大型项目的最佳实践,我会感兴趣

非常感谢

迈克尔

1 个答案:

答案 0 :(得分:1)

是的,您可以将事件处理程序移动到"单独的"类。您已经有两个文件:Form1.cs和Form1.Designer.cs,每个文件都包含一个分部类。在Form1.cs的顶部,您将看到:

## I need more memory (50M) to upload large image
<IfModule mod_php5.c>
  php_value memory_limit 256M
  php_value post_max_size 50M
  php_value upload_max_filesize 50M
</IfModule>

您可以创建一个新文件(任何您喜欢的名称)并添加以下内容:

 public partial class Form1 : Form

现在,您可以将Form1的任何事件处理程序移动到此新文件中。

所有这一切,我们已经获得了一套4个Winforms应用程序,共计约450个控件,我们从未这样做过。我们使用设计器创建事件处理程序的表单上的大多数按钮大约为10.一旦你有很多按钮(例如在菜单中),你最好不要使用设计器,并通过代码创建项目(及其事件处理程序)。

您也不会得到一个包含数万行的表单 - 而是创建包含隔离逻辑的单个控件,然后将这些控件绑定在Form上。