我刚才发现(我想再次确认)如果你声明了一个类级变量,那么在调用类构造函数或load之前不应该调用它的构造函数.原因是性能 - 但还有其他原因可以做到这一点吗?这条规则有例外吗?
即:这是我根据我认为的最佳做法做的事情:
public class SomeClass { private PersonObject _person; public SomeClass() { _person = new PersonObject("Smitface"); } }
反对:
public class SomeClass { private PersonObject _person = new PersonObject("Smitface"); public SomeClass() { } }
discorax.. 12
如果将变量设置在构造函数之外,则不存在可用的错误处理(handeling).虽然在您的示例中它没有任何区别,但在许多情况下您可能希望进行某种错误处理.在这种情况下,使用您的第一个选项是正确的.
如果有一些构造函数失败,Nescio谈到了这会对你的应用程序产生什么影响.
出于这个原因,我总是使用选项#1.
如果将变量设置在构造函数之外,则不存在可用的错误处理(handeling).虽然在您的示例中它没有任何区别,但在许多情况下您可能希望进行某种错误处理.在这种情况下,使用您的第一个选项是正确的.
如果有一些构造函数失败,Nescio谈到了这会对你的应用程序产生什么影响.
出于这个原因,我总是使用选项#1.
老实说,如果你看一下IL,在第二种情况下发生的一切都是编译器为你将初始化移动到构造函数.
就个人而言,我喜欢在构造函数中看到所有初始化.如果我正在进行一次性原型项目,我不介意在同一地点进行初始化和声明,但对于我的"我想保留这个"项目,我在构造函数中完成所有操作.