代码之家  ›  专栏  ›  技术社区  ›  Raffaele Rossi

德尔菲变量和TValues

  •  5
  • Raffaele Rossi  · 技术社区  · 9 年前

    我知道 Variants 转换数据类型时速度很慢,即使我只是简单地添加两个保存整数的变量值。我还发现了另一种类似的东西,它看起来像变体,叫做 TValue .

    他们之间有什么区别?

    我正在考虑使用 TStopWatch ,但我认为这不足以理解差异

    2 回复  |  直到 9 年前
        1
  •  18
  •   Stefan Glienke    9 年前

    TValue 不是用于转换数据类型,而是用于在使用RTTI时传输值。

    它只允许转换与赋值直接兼容的数据类型(例如 Integer Int64 Byte 整数 ). 但不像 Variant 例如,它不允许转换 string 包含要转换为的数字 整数 但会引发 EInvalidCast 例外

        2
  •  16
  •   Remy Lebeau    9 年前

    TValue 与Variant不同。它不会执行以下数据转换 Variant 做如果你问 T价值 含蓄地 转换为正常语言语法),然后 T价值 将引发 EInvalidCast 例外