如何在Delphi中弃用Array类型声明?

时间:2017-06-08 14:02:39

标签: arrays delphi deprecated

我需要将弃用标记为数组类型声明(实际上不仅仅是一个),以帮助将我们的代码迁移到更高级和更灵活的TArray<T>泛型类型

我试过这个:

type
  TArrayChars = array of Char deprecated;

但是我收到了编译错误:E2029 ';' expected but identifier 'deprecated' found

如果声明的类型不是数组,则同样有效,例如:

type
  TFieldChars = set of Char deprecated;

请注意,这应该是可行的。

我错过了什么?

这似乎是德尔福的一个错误(至少10.1柏林和10.2东京)。

我接受的答案提出了一个简洁的解决方法,即:

type
  TArrayCharsOld = array of Char;
  TArrayChars    = TArrayCharsOld deprecated;

我会向Embarcadero提交错误报告。

这是我提交的Embarcadero质量控制问题: https://quality.embarcadero.com/browse/RSP-18316

2 个答案:

答案 0 :(得分:11)

有一种解决方法(至少在10.1柏林)。

type
  TArrayCharsOld = array of Char;
  TArrayChars = TArrayCharsOld deprecated;

编译。

答案 1 :(得分:5)

没什么好说的。动态数组类型声明不能标记为已弃用。

我认为这是一个缺陷。 documentation说:

  

&#39;提示&#39;指令平台,不推荐使用和库可能   附在任何声明中。这些指令将产生警告   编译时间。提示指令可以应用于类型声明,   变量声明,类,接口和结构声明,   类或记录,过程,函数和中的字段声明   方法声明和单位声明。

您的动态数组类型声明符合此处列出的要求,因为它是类型声明。