Delphi 中的泛型并返回对 tlist<class> 的引用

Generics in Delphi and returning a reference to tlist<class>

我仍然使用 Delphi XE4(我使用多个 Delphi 编译器的最新编译器)并且需要一个特定的解决方法,因为他们在此版本中将 FClients 完全隐藏在 TBasicAction 中。我在设置 enabled/disabled 时 connect/disconnect 客户端运行时(以避免闪烁 ~100+ 操作和 ui 元素)因此 XE4 的此解决方法:

这是我天真的尝试,只是简单地返回字段。

  TmscBasicActionCrack = class(TBasicAction)
  end;
{$IFDEF mymsDELPHIXE4}
  TmscBasicActionHelper = class helper for TBasicAction
  public
    function Helper_Get_Private_FClients: TList<System.Classes.TBasicActionLink>;
  end;
{$ENDIF}

{$IFDEF mymsDELPHIXE4}
//------------------------------------------------------------------------------
function TmscBasicActionHelper.Helper_Get_Private_FClients: TList<System.Classes.TBasicActionLink>;
begin
  Result := Self.FClients;
end;
{$ENDIF}

但是,我得到错误

E2003 Undeclared identifier: TList<>

我必须承认我从来没有在 Delphi 中使用泛型,因为我最初听说过稳定性问题 + 我需要保持与 Lazarus/FreePascal 的兼容性。

我知道最新版本 Delphi 再次更改了 class 助手,但我现在最感兴趣的是让它与 Delphi XE4[=14= 一起工作]

错误表明 TList<T> type is unknown to the compiler. To use it you must include System.Generics.Collections in your uses 子句。