我正在使用Delphi XE4.我尝试为TBytes定义一些辅助函数:
TBytesHelper = record helper for TBytes
public
function GetLength: integer;
end;
function TBytesHelper.GetLength: integer;
begin
Result := System.Length(Self);
end;
Run Code Online (Sandbox Code Playgroud)
当我尝试使用新的辅助函数时:
var B: TBytes;
i: integer;
begin
B := TBytes.Create(1,2,3);
i := B.GetLength;
if i <> Length(B) then
raise Exception.Create('Incorrect result');
end;
Run Code Online (Sandbox Code Playgroud)
我除了结果为iIS 3但事实并非如此.我在SysUtils.pas中引用具有类似构造的TStringHelper定义.
有什么我想念的吗?
这个问题在这里讨论: https://forums.embarcadero.com/thread.jspa ?threadID=88409 简而言之 - 您可以定义自己的类型并将其与记录助手一起使用:
type
TMyBytes = array of Byte;
TBytesHelper = record helper for TMyBytes
function GetLength: integer;
end;
Run Code Online (Sandbox Code Playgroud)
但它不适用于 Delphi 中定义的 TByte。最近添加了对泛型类型的帮助程序的支持,因此这可能是当前实现的限制。
| 归档时间: |
|
| 查看次数: |
1858 次 |
| 最近记录: |