C # Как выполнить код после построения объекта (постконструкция)

Как вы можете видеть в приведенном ниже коде, метод DoStuff () вызывается до метода Init () во время создания объекта Child.

Я нахожусь в ситуации, когда у меня много дочерние классы. Следовательно, повторение вызова метода DoStuff () непосредственно после Init () в конструкторе каждого дочернего элемента не будет изящным решением.

Могу ли я каким-либо образом создать какой-то конструктор сообщений в родительском классе, который будет выполняться после дочернего конструктора? Таким образом, я мог бы вызвать там метод DoStuff ().

Если у вас есть какая-либо другая идея дизайна, которая могла бы решить мою проблему, я бы тоже хотел ее услышать!

abstract class Parent
{
    public Parent()
    {
        DoStuff();
    }

    protected abstract void DoStuff();
}

class Child : Parent
{
    public Child()
    // DoStuff is called here before Init
    // because of the preconstruction
    {
        Init();
    }

    private void Init()
    {
        // needs to be called before doing stuff
    }

    protected override void DoStuff() 
    {
        // stuff
    }
}
38
задан asmo 22 July 2011 в 16:13
поделиться