我需要对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没有重载版本的可以使用这些参数调用的“排序”
在写问题时,我找到了答案...(这是一个琐碎的语法问题)
在TArray
类中,Sort
函数的定义如下:
class procedure Sort<T>(var Values: array of T); overload; static;
因此TArray
类函数必须通过指定类型after函数名称来调用:
var
Arr : TArray<integer>;
begin
SetLength(Arr, 2);
Arr[0] := 5;
Arr[1] := 3;
TArray.Sort<integer>(Arr);
ShowMessage(IntToStr(Arr[0]));
end;