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
子句。
我仍然使用 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
子句。