可能重复:
How should the Form.Load event be used compared to its constructor method?
您好,
我的问题是关于C#中的良好编程实践。如果我正在创建一个具有各种表单的应用程序,我会在Load方法中初始化到DB的连接,或者它应该在表单的基本构造函数中?填写表单基本文本框和组合框的其他代码也可以在Load方法中,或者为此目的使用构造函数总是更好?
提前致谢,
科内尔
答案 0 :(得分:2)
每当您想要更改属于表单的控件的状态时,我建议您在表单加载事件中执行此操作。
在表单的构造函数中执行此操作容易出错。您是否考虑过如果尝试在构造函数中执行此操作,但在InitializeComponents()
方法调用之前会发生什么?
关于 ConnectionString ,您可以在两者中执行此操作,因为这与表单没有直接关系。
您还可以查看一些开源项目代码,了解他们如何处理ConnectionString
或其他与表单:)
无关的其他内容
答案 1 :(得分:2)
在网站上注意..永远不要在构造函数或表单加载中直接执行任何操作。
创建一个init方法或从适当的方法(构造函数,加载)调用的东西。这使得重构和单元测试更容易。代码通常更容易阅读。
答案 2 :(得分:1)
绝对更好地以Load
的形式进行,因为这样只会在需要时才会发生。但是也同意使用从表单加载事件处理程序调用的init方法的建议。
答案 3 :(得分:0)
我在构造函数和表单中投票连接填写Load方法!
我认为也没有太大的区别......这取决于应用程序的实现!例如,您可以从基本表单继承所有表单,并将连接字符串检索逻辑放在那里。
如果你想深入一点,我建议你看一下依赖注入(搜索windsor castle,spring.net,ninject ...),在表单类中注入数据库访问类!