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

Программирование на Юнити.

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

Сообщение UncleJey 11 янв 2021, 12:43

Доброго дня!
А вот кто знает, есть ли в c# свойство, которое обязывает вызывать метод предка при его переопределении?

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

Синтаксис:
Используется csharp
class parent
{
 
  protected  virtual void OnDestroy()
  {
     // some happens
  }
}
 
class child : parent
{
  protected  override void OnDestroy()
  {
     // Ошибка, потому как нет вызова base.OnDestroy();
 
  }
 
}
 
UncleJey
UNец
 
Сообщения: 8
Зарегистрирован: 20 сен 2012, 11:04

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

Сообщение samana 11 янв 2021, 13:53

А вы не делайте OnDestroy() виртуальным, но пусть этот базовый метод внутри себя вызывает уже виртуальный метод PrepareOnDestroy, который и будут изменять потомки. По идее это должно сработать.
Аватара пользователя
samana
Адепт
 
Сообщения: 4738
Зарегистрирован: 21 фев 2015, 13:00
Откуда: Днепропетровск

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

Сообщение UncleJey 11 янв 2021, 15:46

Тоже подумал об этом. Но нестыковка в моём сознании .. Sealed есть, а протагониста нет.
Подумал - мож не знаю чего.
UncleJey
UNец
 
Сообщения: 8
Зарегистрирован: 20 сен 2012, 11:04


Вернуться в Скрипты

Кто сейчас на конференции

Сейчас этот форум просматривают: нет зарегистрированных пользователей и гости: 6