Derived3
вызывает ошибку времени компиляции:
Ошибка CS0070 Событие Base.Clicked может появляться только слева от + = или - = (кроме случаев, когда используется из в типе 'Base')
public class Base
{
public virtual event EventHandler Clicked;
public void Click()
{
OnClicked();
}
protected virtual void OnClicked()
{
Clicked?.Invoke(this, EventArgs.Empty);
}
}
public class Derived : Base
{
public override event EventHandler Clicked
{
add { base.Clicked += value; }
remove { base.Clicked -= value; }
}
}
public class Derived2 : Base
{
public override event EventHandler Clicked;
protected override void OnClicked()
{
Clicked?.Invoke(this, EventArgs.Empty);
}
}
public class Derived3 : Base
{
public override event EventHandler Clicked
{
add { base.Clicked += value; }
remove { base.Clicked -= value; }
}
protected override void OnClicked()
{
Clicked?.Invoke(this, EventArgs.Empty);
}
}
Вопрос
Почему нам не разрешено переопределять как событие Clicked
, так и метод OnClicked
, как в классе Derived3
?