Initialize()vs Constructor()方法,正确用于创建对象

Xaq*_*ron 30 c# constructor initialization

我们都从根本上知道a Constructor和用户定义Initialize()方法之间的区别.

我的问题集中在对象创建的最佳设计实践上.我们可以将所有Initialize()代码放入Constructor(),反之亦然(将所有预热代码移动到Initialize方法并从中调用此方法Constructor).

目前,设计一个新类,我在里面创建任何新实例,constructor()并将任何其他热身代码移动到Initialize()方法中.

您认为最好的权衡点是什么?

dtb*_*dtb 26

我认为应该考虑多个方面:

  • 构造函数应该以一种处于可用状态的方式初始化对象.

  • 构造函数应该只初始化一个对象,而不是执行繁重的工作.

  • 构造函数不应直接或间接调用虚拟成员或外部代码.

因此,在大多数情况下,不需要Initialize方法.

如果初始化涉及的不仅仅是将对象置于可用状态(例如,当需要执行繁重的工作或需要调用虚拟成员或外部时),那么Initialize方法是个好主意.