Если у меня есть класс вроде этого:
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>();
}
}
Увидев оба подхода в этом сценарии, есть ли преимущество или недостаток в использовании одного из них?
Является ли наследование конструкторов более эффективным и делает этот код более быстрым или есть недостаток, который я не знаю о том, чтобы сделать вторую реализацию более эффективной?