Francesco Logozzo: Programmazione per Contratti e runtime checking in .NET con i CodeContracts

Sign in to queue

The Discussion

  • User profile image
    smnbss1

    interessante, pero' vedere il debugger che salta dentro e fuori dalle funzione senza + un ordine preciso di esecuzione un po mi spaventa...

  • User profile image
    logozzo

    Grazie.

    In realta' l'ordine di valutazione e' ben preciso. Prima vengono valutate le precondizioni, poi il corpo del metodo, e quindi le postcondizioni. Quando fai l'override di un metodo, erediti anche la sua precondizione, che viene valutata prima dell'esecuzione del corpo del nuovo metodo, e la sua postcondizione, che viene valutata dopo. Il debugger ti permette di seguire la traccia d'esecuzione, e di vedere quale contratto e' violato. Nel mio esempio mi ha subito permesso di scoprire che la sottoclasse non si comporta "bene".

     

    Ciao,

  • User profile image
    smnbss1

    Si, capisco che l'ordine logico e' preciso, ma l'ordine di esecuzione nn rispetta + l'ordine di scrittura come siamo stati abituati fino ad oggi.

    Ad ogni modo, bel lavoro Smiley

Add Your 2 Cents