procedure procInt(var arr: array of integer);
var
p: integer;
begin
...
end;
procedure procStr(var arr: array of string);
var
p: string;
begin
...
end;
begin ... end;
. Различаются они только типом данных у параметра-массива arr
и у объявляемой переменной p
.type
TArrayHelper<T> = class
class procedure CoolProc(var arr: TArray<T>); // Ваша процедура
end;
…
implementation
class procedure TArrayHelper<T>.CoolProc(var arr: TArray<T>); // Реализация Вашей процедуры
var
Tmp: T;
begin
Tmp := arr[0];
arr[0] := arr[4];
arr[4] := Tmp;
end;
procedure TForm1.Button1Click(Sender: TObject); // Проверка работы
var
i: integer;
iarr: TArray<Integer>;
sarr: TArray<String>;
begin
iarr := TArray<Integer>.Create(1, 2, 3, 4, 5);
sarr := TArray<String>.Create('one', 'two', 'three', 'four', 'five');
TArrayHelper<Integer>.CoolProc(iarr); // Вызов для целых чисел
TArrayHelper<String>.CoolProc(sarr); // Вызов для строк
for I := 0 to 4 do
begin
memo1.Lines.Add(IntToStr(iarr[i]));
memo2.Lines.Add(sarr[i]);
end;
end;
абсолютно одинаковый код внутри блока?