【问题标题】:How to grab TRTTIParamter's default value如何获取 TRTTIParamter 的默认值
【发布时间】:2012-03-16 01:40:29
【问题描述】:

我有这门课:

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

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

我最感兴趣的是 D2010 解决方案,但 XE 也可以。

【问题讨论】:

  • 暂时是不可能的,但是你可以在这个QC 93943投票
  • @RRUZ 谢谢你,我不确定,但期待它......

标签: delphi delphi-2010 delphi-xe rtti


【解决方案1】:

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

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

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

 mov  eax, $00000003
 call test

【讨论】:

    猜你喜欢
    • 2012-07-31
    • 1970-01-01
    • 1970-01-01
    • 2019-09-26
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2013-04-17
    • 2019-07-07
    相关资源
    最近更新 更多