读书人

怎么返回多种类型数据

发布时间: 2013-02-18 10:50:49 作者: rapoo

如何返回多种类型数据
有没有类似的写法:
Function GetInfo(x,y):TMapInfo or TNewMapInfo;
请指点。谢谢!
[解决办法]
Function GetInfo(x,y):TMapInfo;
当然有,返回一个记录类型
不过出于安全性和简单的考虑,记录类型的传递最好还是以地址传递或者指针传递,如:
procedure GetInfo(var MapInfo: TMapInfo; X, Y: Integer);
如果用上面的Function直接返回Function里面的一个记录变量,这样很不安全,
因为函数里面变量的存放位置是栈上,退出函数后变量也就释放了,你可以去看下堆栈的相关知识。
[解决办法]
或者建立一个并集的类型:
Ttype2=record
isnew:boolean;
d1:Tmapinfo;
d2:Tnewmapinfo;
end;
当然,还是返回指针最好

读书人网 >.NET

热点推荐