Помогите реализовать следующую задачку на C#

  • Автор темы MiRiN
  • Дата начала
M

MiRiN

#1
Библиотека для сохранения/чтения объектов в типизированный (в терминах языка Pascal) файл / из файла (2 студента, максимум 100 баллов)
Необходимо разработать набор классов, обеспечивающих работу с типизированными файлами как в языке Pascal:
TypedFile<T>
методы:
void Assign(String filename)
void Reset()
void Rewrite(T[] values)
void Append();
void Seek();
void Truncate();
void Write(T value);
T Read();
свойства:
int RecordSize;
int FileSize;
FileMode FileMode; (FileMode – перечисление)
String Filename;
int Pos;
bool Eof;

ITypedDataConverter<T> – используется внутри класса TypedFile<T> для преобразования объектов (экземпляров структур или классов T) в массив байтов фиксированной длины (RecordSize и обратно) и обратно; предположительно передается как параметр в конструктор класса TypedFile;
методы:
byte[] ToByteArray(T value);
T FromByteArray(byte[] data);
своиства:
int RecordSize
DelegatesTypedDataConverter<T>: ITypedDataConverter<T> – класс, экземпляр которого можно сконструировать, указав размер записи T, а также два делегата ToByteArrayDelegate и FromByteArrayDelegate соотвествующего типа;
• TypedFileException – класс, описывающий исключения, которые могут происходить в ходе работы c типизированными файлами.
• TypedFileUtils
методы:
static void Remove<T>(TypedFile<T>, int pos);
static bool Exists<T>(TypedFile<T>, TestDelegate<T>);
static T[] Read<T>(TypedFile<T>);
static T[] Read<T>(TypedFile<T>, TestDelegate<T>);
static T ReadFirst<T>(TypedFile<T>, TestDelegate<T>);
static T ReadLast<T>(TypedFile<T>, TestDelegate<T>);
static int GetIndex<T>(TypedFile<T>, TestDelegate<T>);
static int FindLastIndex<T>(TypedFile<T>, TestDelegate<T>);
static void ForEach(IList<T>, ActionDelegate<T>);
static void ChangeAll<T>(TypedFile<T>, ActionDelegate<T>);
static void Sort(TypedFile<T>, CompareDelegate<T>);
static bool CheckForAll<T>( TypedFile<T>, TestDelegate<T>);
Также необходимо разработать серию примеров, демострирующих основные аспекты работы с реализованной библиотекой работы с типизированными файлами.