gpt4 book ai didi

delphi - 为什么枚举类型会出现 "type has no typeinfo"错误

转载 作者:行者123 更新时间:2023-12-03 14:34:15 25 4
gpt4 key购买 nike

我声明了以下枚举类型,我希望其中第一个成员的序数值为 1(一)而不是通常的 0(零):

  type
TMyEnum = (
meFirstValue = 1,
meSecondValue,
meThirdValue
);

如果我调用TypeInfo(),例如作为调用 GetEnumName() 的一部分,我收到编译器错误:

  GetEnumName(TypeInfo(TMyEnum), Ord(aValue));

错误:“E2134:类型“TMyEnum”没有类型信息”

这是为什么?

我知道类只有在启用 $M 编译器选项的情况下编译时才具有类型信息,或者(派生自某个类,例如 TPercient),但我认为枚举类型的 typeinfo 没有任何特殊条件。

最佳答案

不连续的枚举和不从零开始的枚举没有类型信息。为了实现 typeinfo,由于向后兼容性问题,它需要采用与现有 tkEnumeration 不同的格式。

我考虑为 Delphi 2010 实现一个 tkDiscontigouslyEnumeration (或者可能更好的命名成员),但考虑到它们的相对稀缺性和枚举的困难,好处似乎很小 - 如何有效地对范围进行编码?某些编码对于某些场景更好,而对于另一些场景则更差。

关于delphi - 为什么枚举类型会出现 "type has no typeinfo"错误,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/1420562/

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