Sal*_*dor 4 delphi rtti delphi-xe
我正在使用此代码来获取数组的元素类型
{$APPTYPE CONSOLE}
uses
Rtti,
SysUtils;
type
TFooArray= array of TDateTime;
Var
T : TRttiType;
begin
try
T:=TRttiContext.Create.GetType(TypeInfo(TFooArray));
Writeln(TRttiArrayType(T).ElementType.Name);
except
on E: Exception do
Writeln(E.ClassName, ': ', E.Message);
end;
end.
Run Code Online (Sandbox Code Playgroud)
但是该应用程序因此行上的访问冲突而失败
Writeln(TRttiArrayType(T).ElementType.Name);
Run Code Online (Sandbox Code Playgroud)
如何使用RTTI获取数组的元素类型?
RRU*_*RUZ 11
TRttiArrayType对于静态数组(并且您的数组是动态的),您的转换是错误的,要修复问题,请使用TRttiDynamicArrayType相反的方式:
Writeln(TRttiDynamicArrayType(T).ElementType.Name);
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
1736 次 |
| 最近记录: |