Почему метод-член не может быть передан в конструктор базового класса?

class Flarg
{
    private readonly Action speak;

    public Action Speak
    {
        get
        {
            return speak;
        }
    }

    public Flarg(Action speak)
    {
        this.speak = speak;
    }
}

class MuteFlarg : Flarg
{
    public MuteFlarg() : base(GiveDumbLook)
    {
    }

    private void GiveDumbLook()
    {
    }
}

Компилятор выдает ошибку «Требуется объект для нестатического поля, метода или свойства Project.Namespace.Class.GiveDumbLook».

Кажется, это ничем не отличается от передачи действия в качестве параметра любому другому методу. Почему это недействительно?

редактировать Отличные ответы. Спасибо всем. Я думаю, это просто смущает меня, потому что кажется, что это противоположная сторона монеты отэтот вопрос; где ответ с наибольшим количеством голосов четко гласит

Объект C # полностью создается и инициализируется в ноль перед запуском первого конструктора.

Из-за этого утверждения кажется, что приведенный выше код должен работать. Видимо, есть небольшая разница.

Ответы на вопрос(7)

Ваш ответ на вопрос