Я работаю над стандартным классом данных нашего программного обеспечения. Вот минимальный пример текущего состояния:Доступ к динамическому массиву с типом перечисления
TDataOne = (Width, Length, Height);
TDataTwo = (Diameter, Weight);
TDatStruct = class;
TDatSubStructOne = class(TDatStruct)
public
myData : array[TDataOne] of double;
procedure writeToFile(AFileName : string);
end;
TDatSubStructTwo = class(TDatStruct)
public
myData : array[TDataTwo] of double;
procedure writeToFile(AFileName : string);
end;
Для того, чтобы уменьшить избыточность кода, я хотел бы представить себе структуру данных с общей функцией письма в TDatStruct
. Проблемы (по крайней мере для меня, как любителя) являются:
mydata
имеет переменный размер в зависимости от substruct и баз на различных типах перечислений- Я все еще хочу, чтобы получить доступ к
mydata
с перечисляемого типа в подразделам структур - Я не хочу, чтобы передать данные суб структуры в качестве параметров к общей функции записи из-за числа различных массивов в реальном коде
Единственная идея (пренебрегая точка 3) у меня есть, чтобы пройти данные массива суб структура к общей процедуре записи как открытый параметр массива, как:
writeToFile(AFileName : string; writeData : array of double);
Есть ли способ объединить динамический массив с перечислимым типом или виртуального перечисленномом массивом? Или я полностью ошибаюсь?
Всегда используйте 'const' в своих определениях параметров, если это вообще возможно. – Johan
Возможно, вы также хотите прочитать файлы? Тогда вам нужно будет определить, какой класс следует за двойными в файле, нет? –
@Johan: Спасибо, я буду помнить об этом! – SiD