2
的假设我们有下面的代码片段:使用RTTI ParamType
TMyType = Pointer;
TMyClass = class
procedure myMethod (argument : TMyType);
end;
我一直在使用RTTI来反映这样的类,这样我可以写出来,包括参数类型的方法签名。但是,当我在此使用Rtti时,我得到:
TMyClass = class
procedure myMethod (argument : Pointer);
end;
这不是获取名称TMyType,而是获取指针。我使用ParamType.name来获取参数类型的名称。
我的问题是,是否有无论如何获得开发人员实际声明参数类型的名称,即TMyType?由于ParamType.name没有返回预期的类型名称,我假设类中没有声明的类型没有Rtti信息?
用Delphi XE
声明一个类型,而不是一个别名'TMytype =类型Pointer' –
那么简单,它的作品!非常感谢。 – rhody
原因是编译器在创建RTTI之前将别名解析为其基本类型,这就是为什么您看到“指针”而不是“TMyType”。 –