Condividi tramite


Scrittura di una routine per l'esecuzione di un'azione

Aggiornamento: novembre 2007

In questa lezione, verrà descritto come creare una routine, un blocco di codice indipendente che può essere eseguito da altri blocchi di codice. Verrà descritto come creare parametri per le procedure.

Una routine è semplicemente un blocco di codice che indica al programma di eseguire un'azione. Nelle lezioni precedenti sono già state utilizzate delle routine, sebbene non in modo esplicito. La funzione MsgBox, ad esempio, è una routine incorporata la cui azione consiste nella visualizzazione di una finestra di dialogo.

Sebbene in Visual Basic siano disponibili numerose routine incorporate per l'esecuzione di azioni comuni, è sempre possibile che si desideri fare in modo che il programma esegua un'azione non gestita da una routine incorporata. Ad esempio, la funzione MsgBox non consente di visualizzare una finestra di dialogo contenente un'immagine. A tale scopo, è necessario scrivere una routine personalizzata.

Definizione di routine

Una routine è un blocco di codice indipendente che può essere eseguito da altri blocchi di codice. In generale, ogni routine contiene il codice necessario per eseguire un'attività. Ad esempio, potrebbe esistere una routine denominata PlaySound contenente il codice necessario per la riproduzione di un file audio. Sebbene sia possibile scrivere il codice necessario per la riproduzione di un suono ogni volta che il programma deve emettere un segnale acustico, è preferibile creare una singola routine da poter chiamare in qualsiasi punto del programma.

Per eseguire una routine è necessario chiamarla all'interno del codice. Per eseguire ad esempio la routine PlaySound, è sufficiente aggiungere al programma una riga di codice con il nome della routine, come illustrato di seguito.

PlaySound()

Tutto qui. Quando il programma raggiungerà tale riga, passerà alla routine PlaySound ed eseguirà il codice in essa contenuto, quindi riprenderà l'esecuzione dalla riga che segue la chiamata di PlaySound.

È possibile chiamare un numero qualsiasi di routine, che verranno eseguite nell'ordine in cui sono state chiamate. È ad esempio possibile che esista anche una routine denominata DisplayResults. Per eseguire tale routine dopo PlaySounds, chiamare le due routine come illustrato di seguito.

PlaySounds()

DisplayResults()

Funzioni e subroutine

Esistono due tipi di routine: le funzioni e le subroutine. Una funzione restituisce un valore alla routine che l'ha chiamata, mentre una subroutine esegue semplicemente codice. Una subroutine viene chiamata quando una riga di codice contenente il suo nome viene aggiunta al programma, come illustrato nel seguente esempio.

DisplayResults

A differenza delle subroutine, le funzioni, oltre a eseguire codice, restituiscono anche un valore. Si prenda ad esempio il caso di una funzione denominata GetDayOfWeek che restituisce un valore Integer indicante il giorno della settimana. Per chiamare questa funzione, dichiarare in primo luogo una variabile in cui archiviare il valore restituito, quindi assegnare il valore restituito alla variabile per un successivo utilizzo, come illustrato di seguito.

Dim Today As Integer

Today = GetDayOfWeek

In questo esempio il valore restituito dalla funzione viene copiato nella variabile denominata Today e archiviato per un successivo utilizzo.

Scrittura di routine

La scrittura di routine implica in primo luogo la scrittura di una dichiarazione di routine. Una dichiarazione di routine esegue numerose operazioni. Dichiara se la routine è una funzione o una subroutine, assegna un nome alla routine e specifica i parametri della routine. (I parametri verranno spiegati in dettaglio più avanti in questa lezione.) Di seguito è riportato un esempio di dichiarazione di routine semplice.

Sub MyFirstSub()
End Sub

La parola chiave Sub indica al programma che la routine è una subroutine e non restituirà alcun valore. La parola chiave è seguita dal nome della subroutine (MyFirstSub) e dalle parentesi vuote, che indicano che la routine non dispone di parametri. Infine, la parola chiave End Sub indica la fine della subroutine. Il codice che dovrà essere eseguito mediante la subroutine è inserito tra queste due righe.

La dichiarazione di funzioni è simile, ma è necessario eseguire un passaggio aggiuntivo consistente nell'impostazione del tipo restituito, ad esempio Integer, String e così via. Di seguito è riportato un esempio di funzione che restituisce un valore Integer.

Function MyFirstFunction() As Integer
End Function

Le parole chiave As Integer indicano che questa funzione restituirà un valore Integer . Se si desidera che una funzione restituisca un valore specifico, utilizzare la parola chiave Return come illustrato nel seguente esempio.

Function GetTheNumberOne() As Integer
    Return 1
End Function

Questa routine restituirà il numero 1.

Procedura

Per creare routine

  1. Scegliere Nuovo progetto dal menu File.

  2. Nel riquadro Modelli della finestra di dialogo Nuovo progetto fare clic su Applicazione Windows.

  3. Digitare MyFirstProcedure nella casella Nome, quindi scegliere OK.

    Verrà aperto un nuovo progetto Windows Form.

  4. Fare doppio clic sul form per aprire l'editor di codice.

  5. Nell'editor di codice individuare la riga End Class, che contrassegna la fine della sezione di codice per la creazione del form. Immediatamente prima di questa riga aggiungere la seguente routine:

    Function GetTime() As String
      Return CStr(Now)
    End Function
    

    Questa funzione utilizza la routine Now incorporata per ottenere l'ora corrente, quindi utilizza la funzione CStr per convertire il valore restituito da Now in un valore String leggibile. Infine, il valore String viene restituito come risultato della funzione.

  6. Sopra la funzione inserita nel passaggio precedente aggiungere il codice Sub riportato di seguito.

    Sub DisplayTime()
      MsgBox(GetTime)
    End Sub
    

    Questa subroutine chiama la funzione GetTime e visualizza il relativo risultato in una finestra di messaggio.

  7. Infine, aggiungere una riga nel gestore eventi Form1_Load che chiama la subroutine DisplayTime come illustrato di seguito.

    DisplayTime()
    
  8. Premere F5 per eseguire il programma.

    All'avvio del programma viene eseguita la routine evento Form1_Load. Questa routine chiama la subroutine DisplayTime e quindi l'esecuzione del programma prosegue con la subroutine DisplayTime. Questa subroutine chiama a sua volta la funzione GetTime e quindi l'esecuzione del programma prosegue con la funzione GetTime. Questa funzione restituisce un valore String che rappresenta l'ora alla subroutine DisplayTime, la quale visualizza tale stringa in una finestra di messaggio. Al termine dell'esecuzione della subroutine, il programma prosegue normalmente e visualizza il form.

Parametri di funzioni e subroutine

In alcuni casi è necessario aggiungere ulteriori informazioni alle routine. Nella routine PlaySound è ad esempio possibile scegliere il suono da riprodurre. Per specificare le informazioni indicanti il suono da riprodurre è possibile utilizzare i parametri.

I parametri sono molto simili alle variabili. hanno un tipo e un nome e archiviano informazioni proprio come le variabili. All'interno di una routine, è possibile utilizzare i parametri in modo simile alle variabili. Le due differenze principali che contraddistinguono i parametri dalle variabili sono:

  • I parametri vengono dichiarati nella dichiarazione di routine, anziché in singole righe di codice.

  • I parametri possono essere utilizzati solo nella routine in cui sono stati dichiarati.

Nella dichiarazione di routine i parametri vengono specificati tra le parentesi che seguono il nome della routine. Per dichiarare il tipo viene utilizzata la parola chiave As. Inoltre, ogni parametro in genere è preceduto dalla parola chiave ByVal. Questa parola chiave viene aggiunta automaticamente da Visual Basic in caso sia stata omessa dall'utente e ha una funzione avanzata che esula dagli obiettivi di questa lezione.

Di seguito è riportato un esempio di subroutine con parametri.

Sub PlaySound(ByVal SoundFile As String, ByVal Volume As Integer)
  My.Computer.Audio.Play(SoundFile, Volume)
End Sub

Per chiamare la subroutine con i valori dei parametri utilizzare il codice riportato di seguito.

PlaySound("Startup.wav", 1)

I parametri delle funzioni vengono dichiarati in modo identico a quelli delle subroutine.

Procedura

Per creare una funzione con parametri

  1. Scegliere Nuovo progetto dal menu File.

  2. Nel riquadro Modelli della finestra di dialogo Nuovo progetto fare clic su Applicazione Windows.

  3. Digitare parameters nella casella Nome, quindi scegliere OK.

    Verrà aperto un nuovo progetto Windows Form.

  4. Dalla Casella degli strumenti trascinare due controlli Textbox nel form.

  5. Dalla Casella degli strumenti trascinare un controllo Button nel form.

  6. Fare doppio clic sul controllo Button per aprire l'editor di codice.

  7. Immediatamente dopo la riga End Sub del gestore eventi Button1_Click aggiungere la seguente routine:

    Function AddTwoNumbers(ByVal N1 As Integer, ByVal N2 As Integer) _
      As Integer
      Return N1 + N2
    End Function
    
  8. Nella routine Button1_Click aggiungere il codice riportato di seguito:

    Dim aNumber As Integer = CInt(Textbox1.Text)
    Dim bNumber As Integer = CInt(Textbox2.Text)
    MsgBox(AddTwoNumbers(aNumber, bNumber))
    

    In questo codice vengono dichiarati due valori integer e il testo presente nelle due caselle di testo viene convertito in valori integer, dopo di che questi valori vengono passati alla funzione AddTwoNumbers e il valore restituito viene visualizzato in una finestra di messaggio.

  9. Premere F5 per eseguire il programma.

  10. Digitare un valore numerico in ciascuna casella di testo e fare clic sul pulsante. I due numeri verranno sommati e il risultato verrà visualizzato in una finestra di messaggio.

Passaggi successivi

In questa lezione sono state illustrate le differenze esistenti tra le funzioni e le subroutine ed è stato descritto come creare questi due tipi di routine. È stato inoltre illustrato come chiamare le routine e creare routine con parametri.

Nella lezione successiva verrà descritto come utilizzare l'istruzione For...Next per ripetere azioni.

Lezione successiva: Ripetizione di azioni: utilizzo di un ciclo For...Next

Vedere anche

Attività

Confronti: utilizzo di espressioni per il confronto di valori

Concetti

Routine in Visual Basic