gpt4 book ai didi

delphi - 从 Delphi 中的默认属性直接访问记录的变体部分

转载 作者:行者123 更新时间:2023-12-03 18:25:42 25 4
gpt4 key购买 nike

我有以下带有变体部分的记录:

RVector3 = packed record
[...]
case byte of
0 : (X : Single; Y : Single; Z : Single);
1 : (XY : RVector2);
2 : (Element : array [0 .. 2] of Single);
end;

为了更快地访问单个元素,我想添加一个默认属性。
function GetElement(Index : Integer) : Single;
procedure SetElement(Index : Integer; const Value : Single);
property Elements[index : Integer] : Single read GetElement write SetElement; default;

所以我可以做 myVector[Dim]而不是 myVector.Element[Dim] .
现在我想知道是否有任何方法可以省略 getter 和 setter 方法并直接访问变量部分。我知道有可能做
TTestClass = class
private
FTestVector : RVector3;
public
property Test : single read FTestVector.Y write FTestVector.X;
end;

但是是否有可能将其应用于记录?如
property Elements[index : Integer] : Single read Element[Index] write Element[Index]; default;

不幸的是,这不起作用。

最佳答案

不,属性 getter 或 setter 不可能直接访问数组的元素。您需要使用 getter 和 setter 函数。为了优化性能,如果这对您很重要,您可以标记 getter 和 setter 函数 inline .

关于delphi - 从 Delphi 中的默认属性直接访问记录的变体部分,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/53100444/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com