【问题标题】:Why "=" operator results True when comparing varEmpty with a zero evalued varInteger?为什么将 var Empty 与零值 var Integer 进行比较时,“=”运算符结果为真?
【发布时间】:2018-12-27 13:42:18
【问题描述】:

当将varEmpty Variant 变量与零值varInteger Variant 变量进行比较时,为什么= 运算符会产生True

var
  V1 : Variant;
  V2 : Variant;
begin
  V2 := 0;
  if(V1 = V2)
  then ShowMessage('V1 = V2')
  else ShowMessage('V1 <> V2');
end;

此代码产生以下输出:

V1 = V2

相等运算符= 是否只检查Variant 变量的值部分?

【问题讨论】:

    标签: delphi operators delphi-2007 variant


    【解决方案1】:

    为了进行比较,将空变量转换为整数。根据variant type conversion rules,未分配的(空)变量被转换为0。因此表达式返回true。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2020-12-05
      • 1970-01-01
      • 2012-06-30
      • 1970-01-01
      • 1970-01-01
      • 2020-12-24
      • 2018-05-29
      • 2021-01-08
      相关资源
      最近更新 更多