У нас есть следующая иерархия классов:
public class Base
{
public Base()
{
// do generic initialization
}
public Base(SomeClass param1) : this()
{
// init properties that require param1
}
public Base(SomeClass param1, OtherClass param2) : this(param1)
{
// init properties that require param2
}
// ...
}
public class Derived : Base
{
public Derived()
{
// do custom initialization
}
public Derived(SomeClass param1) : this() // ???
{
// do custom initialization using param1
}
public Derived(SomeClass param1, OtherClass param2) : this(param1) // ???
{
// do custom initialization using param2
}
// ...
}
Нам потребуется Derived
для запуска как собственных процедур инициализации, вверх по цепочке, так и соответствующих процедур из базового класса. Как связать конструкторы без дублирования кода / двойного запуска некоторых конструкторов?