Вот отрывок из базового класса (для удобства переименован в BarcodeScanner).
Код: Выделить всё
public abstract class MyBase
{
public MyBase()
{
if (Initialize())
this.Start();
}
public abstract bool Initialize();
public abstract void Start();
}
Код: Выделить всё
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());
}
}
Я обошел эту проблему, поместив блок Initialize/Start if внутри конструктора MyDerived. Однако существуют и другие классы, производные от базового класса; поэтому мне пришлось повторять этот блок кода инициализации/запуска в каждом производном классе. Я хотел бы увидеть альтернативу изменению базового класса.
Подробнее здесь: https://stackoverflow.com/questions/735 ... in-c-sharp
Мобильная версия