Delphi   发布时间:2022-04-11  发布网站:大佬教程  code.js-code.com
大佬教程收集整理的这篇文章主要介绍了delphi – 如何在泛型类中声明枚举类型的集合类型大佬教程大佬觉得挺不错的,现在分享给大家,也给大家做个参考。
我在Delphi XE4中遇到了一些奇怪的行为. @H_673_2@我不能在泛型类中声明一个set类型,其中序数类型在同一个类中声明.

@H_673_2@例如:

TTest<T> = class(TObject)
type
  TEnumType  = (eOne,eTwo,eThreE);
  TEnumTypes = set of TEnumType;
end;
@H_673_2@以上不编译.编译器发出错误“E2001:Ordinal type required”.

@H_673_2@一个非泛型的类

TTest = class(TObject)
type
  TEnumType  = (eOne,eThreE);
  TEnumTypes = set of TEnumType;
end;
@H_673_2@编译.

@H_673_2@要使泛型类成功编译,必须在类外声明序数类型:

TEnumType  = (eOne,eThreE);
TTest<T> = class(TObject)
type
  TEnumTypes = set of TEnumType;
end;
@H_673_2@>这种行为是否被视为错误?如果是,是否已在更高版本中修复?
>有没有人有另一种解决方法?我想在类中声明类型,因为它们仅在此类的私有部分中使用.

解决方法

从查看问题跟踪器看,它似乎是围绕XE3 / XE4的回归,它在以后的版本中得到修复: @H_673_2@> http://qc.embarcadero.com/wc/qcmain.aspx?d=126675
> http://qc.embarcadero.com/wc/qcmain.aspx?d=112682
> http://qc.embarcadero.com/wc/qcmain.aspx?d=117200

大佬总结

以上是大佬教程为你收集整理的delphi – 如何在泛型类中声明枚举类型的集合类型全部内容,希望文章能够帮你解决delphi – 如何在泛型类中声明枚举类型的集合类型所遇到的程序开发问题。

如果觉得大佬教程网站内容还不错,欢迎将大佬教程推荐给程序员好友。

本图文内容来源于网友网络收集整理提供,作为学习参考使用,版权属于原作者。
如您有任何意见或建议可联系处理。小编QQ:384754419,请注明来意。