首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >重命名TValue阵列类型

重命名TValue阵列类型
EN

Stack Overflow用户
提问于 2013-11-26 15:29:30
回答 1查看 806关注 0票数 4

我已经经历了一个奇怪的关于重命名TValue数组类型的类似;

代码语言:javascript
复制
TValueArray1 := TArray <TValue>;
TValueArray2 := Array of TValue;

我想说的是,他们的行为不应该相似吗?我有一个方法,它有一个常数打开的TValue数组作为参数,但是当我用任何TValueArray替换它时,编译器就开始期望序数值,为什么?

例如,正确工作;

代码语言:javascript
复制
// G1 - TGUID; B1 - TBytes; I1 - Integer; S1 - String

procedure TAgBuffer.Add ( const AData: Array of TValue );
TAgBuffer.Add ( [(TValue.From <TGUID> ( G1 )), TValue.From <TBytes> ( B1 ), I1, S1] );

但是,将“TValue的数组”替换为任何TValueArray后,会出现以下编译器错误:

代码语言:javascript
复制
[dcc32 Error] Unit1.pas(44): E2001 Ordinal type required // for G1
[dcc32 Error] Unit1.pas(44): E2010 Incompatible types: 'Integer' and 'TValue' // for B1
EN

回答 1

Stack Overflow用户

发布于 2013-11-27 10:57:08

下面是一个链接,详细解释了开放数组和动态数组之间的区别。

http://rvelthuis.de/articles/articles-openarr.html

票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/20221273

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档