Com*_*sNo 6 delphi rtti delphi-2010 delphi-xe
我有这门课:
TMyClass = class
public
function DoSomethingNice(const Value: string = 'Yes please!'): Boolean;
end;
Run Code Online (Sandbox Code Playgroud)
现在,使用RTTI,是否可以获取方法DoSomethingNice的参数值的默认值?如果是这样,怎么样?
我最感兴趣的是D2010解决方案,但XE也会这样做.
ter*_*ran 12
这是不可能的,因为RTTI没有关于默认参数的信息.默认参数值仅在编译时使用
所以,如果我们有...
procedure test(x : integer = 3)
然后调用没有参数值的方法:
test()
那么它将被编译为test(3)
检查一下你可以在调试器中打开CPU窗口:test()
看起来像
mov eax, $00000003
call test
Run Code Online (Sandbox Code Playgroud)