在load事件或构造函数中初始化属性?

时间:2009-10-26 16:50:20

标签: c#

我有一个引用服务层对象的属性,每次使用表单时都需要它。 什么是最好的实践:在构造函数或表单的load事件中初始化一个属性?

5 个答案:

答案 0 :(得分:3)

如果表单状态的有效性取决于所设置的属性,则在构造函数中设置该属性。你总是希望你的对象在构造后处于有效状态。

答案 1 :(得分:2)

是的,但要小心你在表单的构造函数中所做的事情,因为当你打开要编辑的表单时,可视化设计器会运行它。

如果您在此处放置任何依赖于在运行时设置的其他内容的内容,则可能会导致错误并且您无法编辑表单布局。

我会说因为这个原因把它放在Form Load中。

答案 2 :(得分:0)

在构造函数中。通常,您需要新建一个表单,并且需要设置一些属性,或者在实际显示表单之前进行其他类型的设置。在这些情况下,您甚至需要在Form实际加载之前设置所有实例变量。

答案 3 :(得分:0)

构造函数应该负责初始化,除非你有特定的需要或依赖来初始化你在Form Load上的变量,比如将它初始化为依赖于其他东西的东西。

答案 4 :(得分:0)

您应该在构造函数中初始化属性。显然,每个表单实例只调用一次构造函数。每次显示表单时都会调用load事件处理程序。此外,如果您在加载事件处理程序中进行了初始化工作(例如填充组合框),则必须编写一些非常hacky的代码,以便在显示表单之前在该组合框中预选值。这只是一个例子。希望有所帮助。