delphi – 使用RTTI获取变量名称
发布时间:2020-12-15 04:10:30 所属栏目:大数据 来源:网络整理
导读:我试图像这样使用RTTI获取变量名. 这是我的测试. type TStringHelper = record helper for string function Name: string; end; TMyRecord = record Field1:string; end;implementation{ TStringHelper }function TStringHelper.Name: string;var context :
我试图像这样使用RTTI获取变量名.
这是我的测试. type TStringHelper = record helper for string function Name: string; end; TMyRecord = record Field1:string; end; implementation { TStringHelper } function TStringHelper.Name: string; var context : TRttiContext; begin context := TRttiContext.Create; result := context.GetType(@Self).Name; // return empty context.Free; end; procedure TForm2.FormCreate(Sender: TObject); var r : TMyRecord; begin ShowMessage(r.Field1.Name); end; TRttiType返回的名称为空. 有没有办法得到变量名? 解决方法
RTTI提供有关类型而不是变量的信息.通常,在给定变量地址的情况下,使用RTTI无法找到其名称.
RTTI不仅没有帮助,而且您正在尝试的,作为字符串对象的方法,实际上是不可能的.想象一下,有两个变量引用同一个对象的场景. S := 'foo'; T := S; 这里单个字符串对象的名称是什么.是S还是T? (编辑:李大同) 【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容! |