Использование функций класса TArray - PullRequest
0 голосов
/ 11 марта 2020

Мне нужно отсортировать TArray<integer>, я добавил System.Generics.Collections к предложению uses, а затем попробовал следующий код:

var
  Arr : TArray<integer>;
begin
  SetLength(Arr, 2);
  Arr[0] := 5;
  Arr[1] := 3;

  TArray.Sort(Arr);

  ShowMessage(IntToStr(Arr[0]));
end;

При компиляции это выдает E2250 сообщение об ошибке:

[ошибка dcc32] Unit1.pas (39): E2250 Не существует перегруженной версии 'Sort', которую можно вызывать с этими аргументами

1 Ответ

2 голосов
/ 11 марта 2020

При написании вопроса я нашел ответ ... (Это была тривиальная проблема синтаксиса)

В классе TArray функция Sort определяется следующим образом:

class procedure Sort<T>(var Values: array of T); overload; static;

Итак, функции класса TArray необходимо вызывать, указав тип после имени функции:

var
  Arr : TArray<integer>;
begin
  SetLength(Arr, 2);
  Arr[0] := 5;
  Arr[1] := 3;

  TArray.Sort<integer>(Arr);

  ShowMessage(IntToStr(Arr[0]));
end;
...