Warning: file_get_contents(/data/phpspider/zhask/data//catemap/8/grails/5.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
C#表单初始化的良好样式_C#_Coding Style - Fatal编程技术网

C#表单初始化的良好样式

C#表单初始化的良好样式,c#,coding-style,C#,Coding Style,可能重复: 你好, 我的问题是关于C#的良好编程实践。如果我使用各种表单创建应用程序,我会在Load方法中初始化与DB的连接,或者它应该在表单的基本构造函数中?以及用于填充表单的其他代码,基本文本框和组合框可以位于Load方法内部,或者最好使用构造函数来实现这一目的 提前感谢, Kornel我投票支持构造函数中的连接和表单填充加载方法 我也认为没有太大的区别。。。这取决于应用程序的实现!例如,您可以从基本表单继承所有表单,并将连接字符串检索逻辑放在那里 如果你想更深入,我建议你看看依赖注入(搜

可能重复:

你好,

我的问题是关于C#的良好编程实践。如果我使用各种表单创建应用程序,我会在Load方法中初始化与DB的连接,或者它应该在表单的基本构造函数中?以及用于填充表单的其他代码,基本文本框和组合框可以位于Load方法内部,或者最好使用构造函数来实现这一目的

提前感谢,


Kornel

我投票支持构造函数中的连接和表单填充加载方法

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


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

每当您想要更改属于表单的控件的状态时,我建议您在表单加载事件中这样做

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

关于ConnectionString,您可以在这两种情况下都这样做,因为这实际上与表单没有直接关系


您还可以查看一些开源项目代码,了解它们是如何处理
连接字符串
或与表单
:)无关的其他内容的。。不要直接在构造函数或表单加载中执行任何操作


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

在表单中执行肯定更好,因为这样它只会在需要时发生。但也同意使用从表单加载事件处理程序调用的init方法的建议。

谢谢,因此我将继续,因为静态信息可以转到构造函数,而动态处理的信息将在加载事件中处于更好的位置。谢谢,我同意可读性问题,但是如果代码增长过多,调用就会影响性能。因为现在我正在按照你的建议,就像我开始那样,方法调用。