最佳答案
我有个奇怪的习惯,至少我同事是这么说的。我们一起做了一个小项目。我写这些类的方式是(简化的例子) :
[Serializable()]
public class Foo
{
public Foo()
{ }
private Bar _bar;
public Bar Bar
{
get
{
if (_bar == null)
_bar = new Bar();
return _bar;
}
set { _bar = value; }
}
}
因此,基本上,我只在调用 getter 时初始化任何字段,而该字段仍然为空。我认为这样可以通过不初始化任何不在任何地方使用的属性来减少重载。
埃塔: 我这样做的原因是,我的类有几个属性,这些属性返回另一个类的实例,而这些实例又有属性和更多的类,等等。调用 top 类的构造函数将随后调用所有这些类的所有构造函数,当它们不是所有需要的 一直都是时。
除了个人偏好外,是否还有其他反对意见?
更新: 关于这个问题,我已经考虑了许多不同的意见,我将坚持我接受的答案。然而,我现在对这个概念有了更好的理解,我能够决定什么时候使用它,什么时候不使用它。
缺点:
优点:
大多数缺点不适用于我目前的库,但是我必须测试“微优化”是否实际上优化了任何东西。
最后更新:
好吧,我改了答案。我最初的问题是这是不是一个好习惯。现在我确信不是这样的。也许我仍然会在我当前代码的某些部分使用它,但不是无条件的,而且肯定不会一直使用它。所以我要改掉我的习惯,在使用它之前好好考虑一下。谢谢大家!