У меня есть класс c #, который имеет много виртуальных методов, некоторые из этих методов по существу абстрактны (они полностью реализованы в подклассах, а базовый класс пуст).
Чтобы получить его для компиляции, я бросаю InvalidOperationException в базовом классе с комментарием о том, что должно быть сделано. Это просто грязно.
Есть ли лучший способ создать мои классы?
редактирование:
Именно для среднего уровня приложения, которое будет запущено в Канаде, половина методов являются общими, а следовательно - виртуальными. и половина методов зависит от провинции.
Public class PersonComponent()
{
public GetPersonById(Guid id) {
//Code to get person - same for all provinces
}
Public virtual DeletePerson(Guid id) {
//Common code
}
Public virtual UpdatePerson(Person p) {
throw new InvalidOperation("I wanna be abstract");
}
Public Class ABPersonComponent : PersonComponent
{
public override DeletePerson(Guid id)
{
//alberta specific delete code
}
public override UpdatePerson(Person p)
{
//alberta specific update codecode
}
}
надеюсь, что это имеет смысл