如何获取TRTTIParamter的默认值

时间:2012-02-26 04:20:00

标签: delphi delphi-2010 delphi-xe rtti

我有这堂课:

TMyClass = class
public
  function DoSomethingNice(const Value: string = 'Yes please!'): Boolean;
end;

现在,使用RTTI,是否可以获取方法 DoSomethingNice 的参数的默认值?如果是这样,怎么样?

我最感兴趣的是D2010解决方案,但XE也会这样做。

1 个答案:

答案 0 :(得分:12)

这是不可能的,因为RTTI没有关于默认参数的信息。 默认参数值仅在编译时使用

所以,如果我们有...... procedure test(x : integer = 3) 然后调用没有参数值的方法: test()然后将其编译为test(3)

要检查这一点,你可以在调试器中打开CPU窗口: 和test()看起来像

 mov  eax, $00000003
 call test