【问题标题】:Is it possible to have different TDictionary TValue Types是否可以有不同的 TDictionary TValue 类型
【发布时间】:2014-04-02 08:18:45
【问题描述】:

我对 Delphi 中的 TDictionary 容器有疑问。我知道通用的 TDictionary 是 TDictionary。有没有办法为 TValue 包含两种不同的类型。

例如,我有一些我正在解析的数据,并想创建一个 TDictionary,其 TKey 类型为 String,TValue 为 Boolean 和 Integer。这可能吗,还是所有 TValue 类型都必须相同?

【问题讨论】:

  • 值类型可以是给定 TValue 类型的公共子类 - 所以除了原始类型之外,它是可能的。
  • 那个“异常”可以用Rtti.TValue作为字典的tvalue来覆盖。

标签: delphi


【解决方案1】:

对于 TDictionary 的单个实例,所有 TValue 类型必须相同。

如果两者都需要,可以使用变体记录,甚至是变体类型。

【讨论】:

  • 或者当然是 Rtti 单元中定义的 TValue 记录,以避免使用变体。
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2013-12-16
  • 1970-01-01
  • 2020-12-09
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多