delphi “E2250:在未键入的泛型标识符上没有...的重载版本”

ddrv8njm  于 2023-11-18  发布在  其他
关注(0)|答案(1)|浏览(202)

我的代码(缩减为下面的代码片段)无法编译。 Delphi XE4的编译器返回以下消息:E2250: There is no overloaded version of 'Sort' that can be called with these arguments

program Project1;

{$APPTYPE CONSOLE}

uses
  System.Generics.Collections;

type
  TSomeGenericType<TKey, TData> = class (TObject);

function GetSortedArray: TArray<TSomeGenericType<Integer, TObject>>;
begin
  // ... omitted code to initialize Result
  TArray.Sort<TSomeGenericType<Integer, TObject>(Result); 
  // !!! E2250: There is no overloaded version of 'Sort' that can be called with these 
  // arguments
end;

begin
end.

字符串

xn1cxnb4

xn1cxnb41#

正如在对这个问题的评论中已经指出的那样,错误的原因是一个微小的打字错误。

TArray.Sort<TSomeGenericType<Integer, TObject>(Result);

字符串
应当

TArray.Sort<TSomeGenericType<Integer, TObject>>(Result);


我认为,解析器应该注意到,检查是否存在具有兼容签名的函数之前。

相关问题