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

Boz*_*zzy 8 arrays delphi deprecated

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

我试过这个:

type
  TArrayChars = array of Char deprecated;
Run Code Online (Sandbox Code Playgroud)

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

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

type
  TFieldChars = set of Char deprecated;
Run Code Online (Sandbox Code Playgroud)

请注意,这应该是可行的设计.

我错过了什么?


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

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

type
  TArrayCharsOld = array of Char;
  TArrayChars    = TArrayCharsOld deprecated;
Run Code Online (Sandbox Code Playgroud)

我将向Embarcadero提交一份错误报告.


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

Dsm*_*Dsm 11

有一种方法(至少在10.1柏林).

type
  TArrayCharsOld = array of Char;
  TArrayChars = TArrayCharsOld deprecated;
Run Code Online (Sandbox Code Playgroud)

编译.


Dav*_*nan 5

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

我认为这是一个缺陷.该文件说:

'hint'指令平台,不推荐使用和库可以附加到任何声明中.这些指令将在编译时产生警告.提示指令可以应用于类型声明,变量声明,类,接口和结构声明,类或记录中的字段声明,过程,函数和方法声明以及单元声明.

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