C#表单初始化的好样式

时间:2011-05-21 20:37:29

标签: c# coding-style

  

可能重复:
  How should the Form.Load event be used compared to its constructor method?

您好,

我的问题是关于C#中的良好编程实践。如果我正在创建一个具有各种表单的应用程序,我会在Load方法中初始化到DB的连接,或者它应该在表单的基本构造函数中?填写表单基本文本框和组合框的其他代码也可以在Load方法中,或者为此目的使用构造函数总是更好?

提前致谢,

科内尔

4 个答案:

答案 0 :(得分:2)

每当您想要更改属于表单的控件的状态时,我建议您在表单加载事件中执行此操作。

在表单的构造函数中执行此操作容易出错。您是否考虑过如果尝试在构造函数中执行此操作,但在InitializeComponents()方法调用之前会发生什么?

关于 ConnectionString ,您可以在两者中执行此操作,因为这与表单没有直接关系。

您还可以查看一些开源项目代码,了解他们如何处理ConnectionString或其他与表单:)无关的其他内容

答案 1 :(得分:2)

在网站上注意..永远不要在构造函数或表单加载中直接执行任何操作。

创建一个init方法或从适当的方法(构造函数,加载)调用的东西。这使得重构和单元测试更容易。代码通常更容易阅读。

答案 2 :(得分:1)

绝对更好地以Load的形式进行,因为这样只会在需要时才会发生。但是也同意使用从表单加载事件处理程序调用的init方法的建议。

答案 3 :(得分:0)

我在构造函数和表单中投票连接填写Load方法!

我认为也没有太大的区别......这取决于应用程序的实现!例如,您可以从基本表单继承所有表单,并将连接字符串检索逻辑放在那里。

如果你想深入一点,我建议你看一下依赖注入(搜索windsor castle,spring.net,ninject ...),在表单类中注入数据库访问类!