【发布时间】:2011-04-16 08:46:46
【问题描述】:
我在下面的评论中遇到过这个“不兼容的类型”错误几次,但一直不满意为什么 Delphi 2007 不直接支持这个错误:
program Project1; {$APPTYPE CONSOLE}
type TCharArray = array of Char;
procedure DoArray(Chars: array of Char);
begin
end;
function ReturnTCharArray: TCharArray;
var CharArray: TCharArray;
begin
Result := CharArray;
end;
begin
DoArray(ReturnTCharArray); // [DCC Error] Project1.dpr(18): E2010 Incompatible types: 'Array' and 'TCharArray'
end.
难道不能将一个数组类型“别名”为另一个相互兼容的数组类型吗?假设我无法更改 DoArray 的声明(它是第三方库的一部分),我如何编写一个函数返回与 DoArray 的参数兼容的字符数组?直截了当的“函数 ReturnAChar:Char 数组;”导致“需要标识符,但找到了 'ARRAY'”错误。我什至尝试使用var“char数组”婴儿车将返回数组的函数更改为程序,但这也不允许在程序中设置“char数组”参数的长度(“无法传递常量对象作为 var 参数”)。
【问题讨论】: