Как получить значение по умолчанию 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