Я немного новичок в C#. Является ли следующая картина жизнеспособными или мне нужно переосмыслить вещи:Статический метод базового класса с использованием констант производного класса
public abstract class Foo{
abstract const Format Format;
public static GetFormat(){
return <Format configured by derived class>
}
}
public class JsonFoo:Foo{
const Format Format = Format.JSON;
}
public class XmlFoo:Foo{
const Format Format = Format.XML;
}
Я пытался разрешить это несколько способов купить я всегда работать, чтобы статики не может быть абстрактным/виртуальным и т.д.
(The код выше только для иллюстрации проблемы)
Edit:
Так я хочу, чтобы построить абстрактный базовый класс с большинством моей логики, а затем создать легкий вес производных классов. Все большинство операций идентичны, но с незначительными отличиями (например, с использованием другого формата (реальный случай - это доступ к различным DbSets в общем DbContext)).
Некоторые операции очень похожи (в контексте DbSet, найти объект по идентификатору, найти все ... и т.д.)
Нет такой вещи, как абстрактный статический или абстрактный const. – Matt
Я знаю, вот в чем проблема: P, Ищете способ решить проблему, поставленную выше или другой шаблон дизайна – SverkerSbrg
Что вы пытаетесь достичь? Получают ли JsonFoo и XmlFoo собственную реализацию GetFormat()? – Matt