2012-02-26 16 views
6

ho questa classe:Come afferrare il valore predefinito di TRTTIParamter

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

Ora, usando RTTI, è possibile ottenere il valore di default del parametro Valore del metodo DoSomethingNice? se é cosi, come?

Sono principalmente interessato a una soluzione D2010, ma XE lo farà anche.

+2

per ora non è possibile, ma si può votare in questo [QC 93.943] (http://qc.embarcadero.com/wc/q cmain.aspx? d = 93943) – RRUZ

+0

@RRUZ grazie, non ero sicuro di questo, ma mi aspettavo ... – ComputerSaysNo

risposta

11

impossibile, perché RTTI non ha informazioni sui parametri predefiniti. valori dei parametri di default vengono utilizzati solo in fase di compilazione

così, se abbiamo ... procedure test(x : integer = 3) e quindi chiamare il metodo senza valore di parametro: test() allora sarà compilato come test(3)

di controllare questo voi in grado di aprire la finestra della CPU nel debugger: e test() sembra

mov eax, $00000003 
call test 
+0

grazie teran! – ComputerSaysNo

Problemi correlati