Вы можете определить помощники для не универсальных c динамических c массивов или для полностью специализированных универсальных c динамических c массивов. Например, вы можете написать:
type
TMyArray1 = array of Integer;
TMyArray2 = TArray<Integer>;
TMyArrayHelper1 = record helper for TMyArray1
end;
TMyArrayHelper2 = record helper for TMyArray2
end;
TMyArrayHelper3 = record helper for TArray<Integer>
end;
Это позволяет вам добавлять методы в область действия таких массивов.
Таким образом, вы можете написать
type
TIntegerArrayHelper = record helper for TArray<Integer>
procedure Sort;
end;
procedure TIntegerArrayHelper.Sort;
begin
TArray.Sort<Integer>(Self);
end;
Однако, то, что вы не можете сделать, это написать:
TMyArrayHelper<T> = record helper for TArray<T>
end;
Компилятор просто не поддерживает generi c помощников.
На мой взгляд, ничего из этого не стоит, просто позвоните:
TArray.Sort<T>()
напрямую. Добавление помощника по записи и необходимость его создания для каждого типа элемента, который вы sh должны поддерживать, кажется мне ценой, которая не оправдывает возврат.