2011-04-12 54 views
3

考虑以下几点:类型转换到动态数组

Type 
    TSomeTypeArray = array of SomeType; 

var 
    anArray: array of SomeType; 

function GetSomeTypeArray: TSomeTypeArray; 

我想写anArray = GetSomeTypeArray();但是编译器不喜欢它。 如果不更改anArray的类型或返回类型GetSomeTypeArray如何才能输入TSomeTypeArrayarray of SomeType

回答

3

你不能。你需要声明anArray,如TSomeTypeArray,那么它应该工作。

或者,您可以将结果存储到TSomeTypeArray类型的另一个数组,然后在anArray上调用SetLength至返回数组的长度。最后循环遍历两个数组,将anArray的元素设置为返回数组的元素。

+0

不是问题的答案:P但由于 – Asher 2011-04-19 13:00:14

+0

呀,对不起。 AFAIK是唯一的方式,并且因为没有其他人选择替代方案。 。 。 – 2011-04-20 21:04:00

4

你可以强制转换的赋值的左边:

我想
TSomeTypeArray(anArray) := GetSomeTypeArray(); 
+0

左手边字符串< - 这让我非常震惊 – user1249190 2014-11-25 04:51:03