Hier ist ein Auszug aus der Basisklasse (der Einfachheit halber in BarcodeScanner umbenannt).
Code: Select all
public abstract class MyBase
{
public MyBase()
{
if (Initialize())
this.Start();
}
public abstract bool Initialize();
public abstract void Start();
}
Code: Select all
class MyDerived : MyBase
{
private string sampleObject;
public MyDerived (string initObject)
{
sampleObject = initObject;
}
public override bool Initialize()
{
return GetDevice();
}
public override void Start()
{
Console.WriteLine("Processing " + sampleObject.ToString());
}
}
Ich habe dies umgangen, indem ich den Initialize/Start if-Block in den MyDerived-Konstruktor eingefügt habe. Es gibt jedoch auch andere Klassen, die von der Basisklasse abgeleitet sind. Daher musste ich diesen Block des Initialisierungs-/Startcodes in jeder abgeleiteten Klasse wiederholen. Ich würde gerne eine Alternative zum Ändern der Basisklasse sehen.
Mobile version