Comprendere la sintassi dei metodi

Completato

Forse si ha già familiarità con alcuni metodi, come Console.WriteLine() o random.Next(). Si potrebbe aver apprezzato il modo in cui questi metodi semplificano le attività e consentono di compilare più facilmente il codice. In questa unità si apprenderà come creare metodi personalizzati.

Funzionamento dei metodi

Il processo di sviluppo di un metodo inizia con la creazione di una firma. La firma del metodo dichiara il tipo restituito, il nome e i parametri di input del metodo. Si consideri ad esempio la firma del metodo riportata di seguito:

void SayHello();

Il nome del metodo è SayHello. Il tipo restituito è void, ovvero il metodo non restituisce dati. Tuttavia, i metodi possono restituire un valore di qualsiasi tipo di dati, ad esempio bool, int, double e matrici. I parametri del metodo, se presenti, devono essere inclusi tra parentesi (). I metodi possono accettare più parametri di qualsiasi tipo di dati. In questo esempio il metodo non ha parametri.

Prima di poter eseguire un metodo, è necessario aggiungere una definizione. La definizione del metodo usa parentesi quadre {} per contenere il codice che viene eseguito quando viene chiamato il metodo. Per esempio:

void SayHello() 
{
    Console.WriteLine("Hello World!");
}

Ora il metodo stamperà Hello World! ogni volta che viene chiamato.

Chiamata di un metodo

Un metodo viene chiamato usando il relativo nome e includendo gli argomenti obbligatori. Tenere presente quanto segue:

Console.Write("Input!");

La stringa "Input!" è l'argomento fornito al metodo Write.

È possibile chiamare un metodo prima o dopo la relativa definizione. Ad esempio, il metodo SayHello può essere definito e chiamato usando la sintassi seguente:

SayHello();

void SayHello() 
{
    Console.WriteLine("Hello World!");
}

Si noti che non è necessario aver definito il metodo prima di chiamarlo. Questa flessibilità consente di organizzare il codice in base alle esigenze. In genere, i metodi vengono tutti definiti alla fine di un programma. Per esempio:

int[] a = {1,2,3,4,5};

Console.WriteLine("Contents of Array:");
PrintArray();

void PrintArray()
{
    foreach (int x in a)
    {
        Console.Write($"{x} ");
    }
    Console.WriteLine();
}

Esecuzione del metodo

Quando si chiama un metodo, verrà eseguito il codice incluso nel relativo corpo. Questo significa che il controllo dell'esecuzione viene passato dal chiamante del metodo al metodo. Il controllo viene restituito al chiamante una volta completata l'esecuzione del metodo. Si consideri ad esempio il codice seguente:

Console.WriteLine("Before calling a method");
SayHello();
Console.WriteLine("After calling a method");

void SayHello() 
{
    Console.WriteLine("Hello World!");
}

Questo codice visualizza l'output seguente:

Before calling a method
Hello World!
After calling a method

Una volta definito un metodo, questo può essere richiamato in qualsiasi momento, tutte le volte che è necessario usarlo. È possibile usare metodi all'interno di istruzioni if-else, cicli for, istruzioni switch, anche per inizializzare le variabili e molto altro ancora.

Procedure consigliate

Quando si sceglie un nome di metodo, è importante mantenerlo conciso e fare in modo che chiarisca quale attività verrà eseguita. I nomi dei metodi devono essere specificati nella notazione Pascal e in genere non devono iniziare con numeri. I nomi per i parametri devono descrivere il tipo di informazioni che rappresentano. Considerare le firme del metodo seguenti:

void ShowData(string a, int b, int c);
void DisplayDate(string month, int day, int year);

Il secondo metodo descrive il tipo di dati visualizzati e fornisce nomi descrittivi per i parametri.

Una volta apprese le nozioni di base, è possibile iniziare a scrivere metodi personalizzati.