作者热门文章
- html - 出于某种原因,IE8 对我的 Sass 文件中继承的 html5 CSS 不友好?
- JMeter 在响应断言中使用 span 标签的问题
- html - 在 :hover and :active? 上具有不同效果的 CSS 动画
- html - 相对于居中的 html 内容固定的 CSS 重复背景?
在我看来,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/
我是一名优秀的程序员,十分优秀!