Chiamare una Subroutine con Call o senza


Per chiamare una subroutine, e possibile utilizzare lo statement Call, o più semplicemente utilizzare il nome della subroutine:

Call MiaRoutine(Parametro1, Parametro2)

oppure

MiaRoutine Parametro1, Parametro2

Nel secondo caso, non vengono utilizzare le parentesi per il passaggio dei parametri.
Utilizzandole, il VB assume che state utilizzando un operatore.
In questo caso, valuta i paramentri e ne passa i valori alla routine, invece di passarli per referenza.
Infatti se proviamo con questo codice:

Call MiaRoutine(Text1)

alla MiaRoutine sara' passato l'oggetto TextBox.
Nell'altro caso (utilizzando le parentesi senza il Call), VB valutera' il valore di Text1 (in questo caso la proprietà di default e' Text) passandone il valore alla routine:

MiaRoutine (Text1)

quindi MiaRoutine non ricevera' l'oggetto TextBox, ma il valore della sua proprietà Text.
Questo causerà la generazione di un errore in quanto la routine aspetta un oggetto al posto di una stringa.

Testato su: Windows 98, Win Me, Windows 2000 Professional