gpt4 book ai didi

Delphi XE : Where is my TValue. 等于()?

转载 作者:行者123 更新时间:2023-12-03 14:41:44 30 4
gpt4 key购买 nike

在我看来,TValue 似乎缺少一个强制方法; TValue.Equals(TValue)。

那么比较 2 个 TValue 的快速且合适的方法是什么,最好不使用 TValue.ToString(),它允许变体、记录等之间出现错误匹配。

最佳答案

Delphi-Mocks提供两个功能:

function CompareValue(const Left,Right : TValue): Integer;
function SameValue(const Left, Right: TValue): Boolean;

使用 TValue 的记录助手,您还可以执行 TValue.Equals(TValue);

根据 Apache 条款获得许可并得到 Stefan Glienke 的许可。

这是 Stefan 的原始来源:delphisorcery .

如果您需要扩展变体的功能,请添加:

function TValueHelper.IsVariant: Boolean;
begin
Result := TypeInfo = System.TypeInfo(Variant);
end;

并插入

if Left.IsVariant and Right.IsVariant then
begin
Result := Left.AsVariant = Right.AsVariant;
end else

SameValue 函数中进行 isString 比较之后。

关于Delphi XE : Where is my TValue. 等于()?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/9800954/

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