abstract class CustomControl : UserControl
{
protected abstract int DoStuff();
}
class DetailControl : CustomControl
{
protected override int DoStuff()
{
// do stuff
return result;
}
}
Я сбросил элемент DetailControl в форме. Он корректно отображается во время выполнения, но дизайнер выводит сообщение об ошибке и не будет открываться, поскольку базовый пользовательский элемент управления является абстрактным.
На данный момент я рассматриваю следующий патч, который кажется мне неправильным, поскольку я хочу, чтобы дочерние классы были вынуждены реализовать этот метод.
class CustomControl : UserControl
{
protected virtual int DoStuff()
{
throw new InvalidOperationException("This method must be overriden.");
}
}
class DetailControl : CustomControl
{
protected override int DoStuff()
{
// do stuff
return result;
}
}
У кого-нибудь есть лучшая идея о том, как решить мою проблему?