Ich habe eine Job-Basisklasse mit einer abstrakten Work() -Methode. Dies wird in meinen geerbten Klassen überschrieben/implementiert.Anwenden wiederkehrende bedingte Überprüfung auf alle abgeleiteten Klassen
Was ich erreichen möchte, ist die Anwendung einer Abbruchbedingung für alle abgeleiteten Klassen. Das Vorlagenmethodenmuster scheint mir hier nicht zu helfen, da ich diese Überprüfung in meiner abstrakten Work() - Klasse durchführen muss.
Eine Abhilfe wäre machen Arbeit() virtuell, aber dann bin ich nicht mehr gezwungen, die Umsetzung davon (was ich tun möchte):
public abstract class First
{
protected virtual void Work()
{
//do stuff
}
}
public class Second : First
{
protected override void Work()
{
base.Work();
}
}
Gibt es eine Möglichkeit, mein Ziel zu erreichen?
Es ist schwer zu sagen, Was genau wollen Sie, aber wie wäre es mit einer 'öffentlichen Void Work()' in 'First ', die die Prüfung abbricht und' geschütztes abstraktes void WorkInternal() 'aufruft, das in den abgeleiteten Klassen implementiert ist? – Blorgbeard