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