Как получить значение по умолчанию TRTTIParamter по

У меня есть этот класс:

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

теперь, используя RTTI, можно ли получить значение по умолчанию параметра стоимостью метод DoSomethingNice? если да, то как?

меня в основном интересует решение D2010, но XE также будет делать.

1 ответов


это невозможно, потому что RTTI не имеет информации о параметрах по умолчанию. значения параметров по умолчанию используются только во время компиляции

Итак, если у нас есть... procedure test(x : integer = 3) а затем вызовите метод без значения параметра: test() тогда он будет скомпилирован как test(3)

чтобы проверить это, вы можете открыть окно CPU в отладчике: и test() выглядит так:

 mov  eax, 000003
 call test