Привет, я работаю с единством 3D, создавая свои собственные сети с помощью lidgren.Можно запретить классу для детей определять класс?
У меня была эта проблема один раз, когда я сделал пользовательский gui для меня, но не был большой проблемой. Небольшое предупреждение для другого разработчика было небольшой помощью.
Но на этот раз мне нужно лучшее решение.
Допустим, у меня есть BaseClass и ребенка:
public class BaseClass : MonoBehavior {
void Update() {
//my connectionhandler
}
}
public class Child : BaseClass {
// forbid it to define Update
void Update() {
}
// or let him use it but without writing base.Update() it should still use BaseClass Update()
}
Как вы видите, в обоих классах у меня есть пустое Update(). Эта проблема заключается в том, что ребенок также использует void Update, поэтому базовое обновление больше не вызывается. Можно избежать этого. Пример ограничить доступ к методу обновления, если база уже определила его? Или можно дать ребенку определение определения void Update(), но базовый класс также должен иметь возможность использовать собственное Update() (фоновая работа: P)
Другой разработчик не должен использовать каждый раз base.Update() , Я уверен, что они забудут это много раз :)
Вы бы добавили загерметизированный в meathod –
Вы рассмотрели возможность добавления событий к методу Update вместо этого? Разрешить пользователям добавлять обработчики событий BeforeUpdate и AfterUpdate для запуска настраиваемого кода, но само обновление всегда будет работать? – Eris
Нет, если бы я тогда дал бы им использовать base.Update() :). Проблема состоит в единстве. Я не заметил, что Update() работает как функция, определенная пользователем. Я не могу этого предотвратить. Теперь я думаю о потоках. Но это не так безопасно. – MaZy