Почему метод-член не может быть передан в конструктор базового класса?
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 # полностью создается и инициализируется в ноль перед запуском первого конструктора.
Из-за этого утверждения кажется, что приведенный выше код должен работать. Видимо, есть небольшая разница.