Invocazione di un Metodo in C#

Invocazione di un Metodo

Invocare o chiamare un metodo è in realtà il processo di esecuzione del codice del metodo, inserito nel suo corpo.

È molto facile invocare un metodo. L'unica cosa che deve essere fatta è scrivere il nome del metodo , seguito dalle parentesi tonde e dal punto e virgola ;.

La sintassi è la seguente:

nome_metodo();

Più avanti vedremo un esempio nei casi in cui il metodo invocato ha una lista di parametri (nell'esempio di sopra il metodo non ha parametri).

Per chiarire come funziona l'invocazione del metodo, il prossimo frammento mostra come verrà chiamato il metodo StampaMessaggio():

static void StampaMessaggio()
{
    Console.WriteLine("Ciao!");
    Console.WriteLine("Come stai?");
}

static void Main()
{
    StampaMessaggio();
}

Il risultato dell'esecuzione del metodo è:

Ciao!
Come stai?
Definizione

Invocazione di un Metodo

Per invocare un metodo in C# la sintassi è la seguente:

nome_metodo();

Flusso di Esecuzione

Quando un metodo viene eseguito, prende il controllo del programma.

Tuttavia, se nel metodo chiamante chiamiamo un altro metodo, il chiamante cederà il controllo al metodo chiamato. Il metodo chiamato restituirà il controllo al chiamante subito dopo che la sua esecuzione sarà terminata.

L'esecuzione del chiamante continuerà dalla linea in cui si trovava prima di chiamare l'altro metodo.

Ad esempio, chiamiamo StampaMessaggio() dal metodo Main():

Flusso di Esecuzione del programma durante l'invocazione di un metodo
Figura 1: Flusso di Esecuzione del programma durante l'invocazione di un metodo

Prima verrà eseguito il codice del metodo Main(), contrassegnato con (1), poi il controllo del programma verrà dato al metodo StampaMessaggio – la freccia tratteggiata (2). Questo causerà l'esecuzione del codice nel metodo StampaMessaggio, numerato con (3). Quando il lavoro del metodo StampaMessaggio è terminato, il controllo del programma viene restituito al metodo Main(): freccia tratteggiata (4). L'esecuzione di Main() continuerà dalla linea dopo la chiamata a StampaMessaggio contrassegnata con (5).

Un metodo può essere invocato dai seguenti luoghi:

  • Dal metodo principale del programma: Main():

    static void Main()
    {
        StampaMessaggio();
    }
    
  • Da qualche altro metodo:

    static void StampaMessaggio()
    {
        Console.WriteLine("Ciao!");
        Console.WriteLine("Come stai?");
    }
    
    static void StampaMessaggio2()
    {
        // Invocazione del metodo StampaMessaggio
        StampaMessaggio();
        Console.WriteLine("Tutto Bene?");
    }
    
  • Un metodo può essere invocato dal proprio corpo. Tale chiamata è denominata ricorsione. Ne discuteremo in dettaglio nelle prossime lezioni.

Dichiarazione del Metodo e Invocazione del Metodo

In C# l'ordine dei metodi nella classe non è importante. È consentito invocare (chiamare) un metodo prima che sia dichiarato nel codice:

static void Main()
{
    // ...
    StampaMessaggio();
    // ...
}

static void StampaMessaggio()
{
    Console.WriteLine("Ciao!");
    Console.WriteLine("Come stai?");
}

Se creiamo una classe che contiene il codice sopra, vedremo che il codice verrà compilato ed eseguito con successo.

Non importa se abbiamo dichiarato il metodo prima o dopo il metodo principale. In alcuni altri linguaggi (come Pascal o come il C), l'invocazione di un metodo dichiarato sotto la linea dell'invocazione non è consentita.

Consiglio

Ordine dei Metodi

Se un metodo viene chiamato nella stessa classe in cui è dichiarato e implementato, può essere chiamato in una linea prima della linea in cui è dichiarato.

In Sintesi

  • L'invocazione di un metodo è il processo di esecuzione del codice del metodo.
  • Per invocare un metodo, scriviamo il nome del metodo seguito dalle parentesi tonde e dal punto e virgola ;.
  • Un metodo può essere invocato da un altro metodo o dal metodo principale del programma.
  • L'ordine dei metodi nella classe non è importante. È consentito invocare un metodo prima che sia dichiarato nel codice.

In questo modo abbiamo imparato come invocare un metodo in C#. Nella prossima lezione, vedremo come passare parametri a un metodo.