Страница 1 из 1

как вызов метода предка сделать обязательным?

СообщениеДобавлено: 11 янв 2021, 12:43
UncleJey
Доброго дня!
А вот кто знает, есть ли в c# свойство, которое обязывает вызывать метод предка при его переопределении?

Смысл прост.
Переопределили не посмотрев на предка, слетел функционал.
Большой вопрос в том как это предотвратить? (административные методы не помогут)

Синтаксис:
Используется csharp
class parent
{
 
  protected  virtual void OnDestroy()
  {
     // some happens
  }
}
 
class child : parent
{
  protected  override void OnDestroy()
  {
     // Ошибка, потому как нет вызова base.OnDestroy();
 
  }
 
}
 

Re: как вызов метода предка сделать обязательным?

СообщениеДобавлено: 11 янв 2021, 13:53
samana
А вы не делайте OnDestroy() виртуальным, но пусть этот базовый метод внутри себя вызывает уже виртуальный метод PrepareOnDestroy, который и будут изменять потомки. По идее это должно сработать.

Re: как вызов метода предка сделать обязательным?

СообщениеДобавлено: 11 янв 2021, 15:46
UncleJey
Тоже подумал об этом. Но нестыковка в моём сознании .. Sealed есть, а протагониста нет.
Подумал - мож не знаю чего.