Interessante possibilità offerta da Visual Studio 2010 beta 2 è la generazione dei diagrammi di sequenza a partire dai metodi di una nostra classe. Ma come si comporta se nei nostre elucubrazioni object oriented sono presenti metodi ricorsivi?
Supponiamo di avere la nostra classe:
Public Class ClasseAPublic Sub MetodoA(ByVal control As Control)For Each childControl In control.Controls.OfType(Of Control)()MetodoA(childControl)NextEnd SubPublic Sub MetodoB()For index = 0 To 10MetodoC()NextEnd SubPublic Sub MetodoC()End SubEnd Class
Per generare il diagramma di sequenza del MetodoA è sufficiente utilizzare il menù contestuale che si ottiene andando sul metodo e premendo il tasto destro:
selezionare la profondità del diagramma di sequenza:
A questo punto, Visual Studio lavora un pochino (in base alla complessità del metodo e alla profondità richiesta) e genera il diagramma di sequenza:
Possiamo osservare che Visual Studio si rende conto che il MetodoA è chiamato in maniera ricorsiva all’interno di un loop e ce lo indica con la dicitura “Recurse to this.MetodoA” (molto C#esca ma efficace).
Se proviamo a generare il diagramma di sequenza del MetodoB otteniamo:
Il diagramma mostra, questa volta, un loop con la chiamata al MetodoC non ricorsivo (come è giusto che sia).
Alla fine sembrerebbe che Visual Studio 2010 beta 2 comprenda correttamente la ricorsività e, questo, non può che farci piacere.
Commenti