saa*_*stn 12 delphi delphi-xe5
我想在XE5中这样做:
type
TMyRec = record
// fields
class function GetList: TMyRecArr; static;
end;
TMyRecArr = array of TMyRec;
Run Code Online (Sandbox Code Playgroud)
我已经看过"记录类型的前向声明"和"如何进行类型转发声明?" ,但它们似乎无关紧要,因为我的问题是没有将记录作为参数传递.
Dav*_*nan 17
您不能使用前向声明来声明记录类型或数组类型.但不要害怕.您可以使用通用动态数组TArray<T>.
type
TMyRec = record
class function GetList: TArray<TMyRec>; static;
end;
Run Code Online (Sandbox Code Playgroud)
这实际上比TMyRecArr根据您的问题中的代码声明更好.这是因为泛型TArray<T>具有比传统动态数组类型更灵活的类型标识.您可以使用TArray<T>在独立且不知道您的代码的库中定义的泛型类型.
现在,你可以声明这样的类型:
type
TMyRec = record
type TMyRecArray = array of TMyRec;
class function GetList: TMyRecArray; static;
end;
Run Code Online (Sandbox Code Playgroud)
然后你的数组类型是TMyRec.TMyRecArray.但我劝你不要这样做.您将拥有一个只能与您的代码一起使用的类型,并且不能与第三方代码一起使用.
总之,TArray<T>是你的朋友.
| 归档时间: |
|
| 查看次数: |
1859 次 |
| 最近记录: |