Kann ich eine abgeleitete Klasse irgendwie dazu zwingen, immer die überschriebenen Basismethoden aufzurufen?
public class BaseClass
{
public virtual void Update()
{
if(condition)
{
throw new Exception("..."); // Prevent derived method to be called
}
}
}
Und dann in einer abgeleiteten Klasse :
public override void Update()
{
base.Update(); // Forced call
// Do any work
}
Ich habe gesucht und einen Vorschlag gefunden, ein nicht-virtuelles Update() zu verwenden, aber auch ein geschütztes virtuelles UpdateEx(). Es fühlt sich einfach nicht sehr ordentlich, gibt es keinen besseren Weg?
Ich hoffe, Sie verstehen die Frage und entschuldige mich für mein schlechtes Englisch.