delphi – 用于记录类型(或数组)的前向声明
发布时间:2020-12-15 04:31:53 所属栏目:大数据 来源:网络整理
导读:我想在XE5中做到这一点: type TMyRec = record // fields class function GetList: TMyRecArr; static; end; TMyRecArr = array of TMyRec; 我已经看到了“Forward declarations for record types”和“how to do a typed forward declaration?”,但是它们
我想在XE5中做到这一点:
type TMyRec = record // fields class function GetList: TMyRecArr; static; end; TMyRecArr = array of TMyRec; 我已经看到了“Forward declarations for record types”和“how to do a typed forward declaration?”,但是它们似乎并不相关,因为我的问题没有将记录作为参数传递. 解决方法
您不能使用forward声明来声明记录类型或数组类型.但不要害怕您可以使用通用动态数组TArray< T>.
type TMyRec = record class function GetList: TArray<TMyRec>; static; end; 这实际上比根据您的问题的代码声明TMyRecArr更好.这是因为通用的TArray< T>具有比传统动态数组类型更灵活的类型标识.您可以使用TArray< T>在库中定义的泛型类型是独立的,不知道你的代码. 现在,您可以声明类型如下: type TMyRec = record type TMyRecArray = array of TMyRec; class function GetList: TMyRecArray; static; end; 然后你的数组类型是TMyRec.TMyRecArray.但我敦促你不要这样做.您将拥有只能与您一起使用代码的类型,不能与第三方代码一起使用. 总之,TArray< T>是你的朋友. (编辑:李大同) 【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容! |