У меня возникла пара вопросов, решающих, как лучше всего описать определенную структуру данных в C # (.NET 3.5).
Мне нужно создать библиотеку классов, которая создает текстовые файлы для ввода программы командной строки. Существуют десятки типов файлов, но большинство из них имеют похожие заголовок, нижний колонтитул и несколько других свойств.
Итак, файл может выглядеть так:
timestamp filename company
....lots of attributes that make up the file body....
footerdetail1 footerdetail2 footerdetail3
Теперь из этих десятков типов файлов на самом деле есть только три уникальные комбинации заголовков и нижних колонтитулов.
Итак, я хочу создать родительский класс, который содержит большинство headerItems и footeritems, а затем реализовать фактические типы файлов в производном классе:
class BaseFileType {
public List<HeaderItems>;
public List<BodyItems>;
public List<FooterItems>;
FileType filetype;
String filename;
public BaseFileType1 (FileType filetype,String filename) {
this.filetype = filetype;
this.filename = filename;
// add stuff to the header list
// add stuff to the footer list
}
// some methods to find items in the header/ footer lists
}
class ActualFile1 : BaseFileType {
ActualFile() {
//add stuff to the bodyitems list
}
//some other generic methods
}
Дело в том, что я хочу унаследовать конструктор от базового класса для производного класса, но из того, что я прочитал, этого сделать нельзя. Какова лучшая стратегия здесь?
Я видел, что я могу вызвать базовый конструктор из моего конструктора производного класса следующим образом:
ActualFile (): base (родительские параметры)
Это даже лучший способ выполнить мою задачу? В конце я просто ищу лучшие структуры данных для всей этой информации о файле, поэтому мне не нужно повторяться, когда я делаю эти классы.
Какие другие альтернативы людям будут работать? Есть одна FileFactory, которая выплевывает классы, содержащие структуру, которая мне нужна?