如果我有这样的课程:
public class Foo
{
public IEnumerable<Bar> Bars { get; set; }
public Foo()
{
Bars = new List<Bar>();
}
}
在某个阶段,我重构了类并添加了一个辅助构造函数,它实现了第一个构造函数,如下所示:
public class Foo
{
public IEnumerable<Bar> Bars { get; set; }
// some more properties were added
public Foo()
{
Bars = new List<Bar>();
}
public Foo(string parameter): this()
{
.... some code here
}
}
我也可以这样写:
public class Foo
{
public IEnumerable<Bar> Bars { get; set; }
// some more properties were added too
public Foo()
{
InitilizeFoo();
}
public Foo(string parameter)
{
InitilizeFoo();
.... some code here
}
private void InitializeFoo()
{
Bars = new List<Bar>();
}
}
看到这两种方法在这种情况下都有效,使用其中一种方法有好处还是坏处?
是继承构造函数更高效并使代码执行得更快,还是有一个我不知道的缺点是让第二个实现更高效?