TOC

This article has been localized into Italian by the community.

Classi:

Metodi (funzioni)

Mentre properties e field possono essere considerati parti passive di una classe, i metodi sono attivi. Eseguiranno una o più azioni e facoltativamente restituiranno un risultato. In altri linguaggi di programmazione vengono talvolta definiti funzioni , ma in C #, dove appartengono a una classe, vengono chiamati metodi. I metodi sono molto utili perché ti consentono di incapsulare un pezzo di funzionalità in un metodo che puoi quindi richiamare da più punti.

Un metodo è definito così:

<visibility> <return type> <name>(<parameters>)
{
    <method code>
}

Qui un esempio basico:

public int AddNumbers(int number1, int number2)
{
	return number1 + number2;
}

Questo metodo molto semplice aggiungerà due numeri e restituirà il risultato. Esaminiamo le varie parti di esso:

  • public è la visibilità (ne parleremo più avanti in questo tutorial)
  • int è il tipo di ritorno. Se non desideri che il tuo metodo restituisca nulla, utilizza invece la parola chiave void
  • AddNumbers è il nome del metodo
  • ( int number1, int number2 ) - questi sono i parametri (ne parleremo più avanti). I parametri sono facoltativi, quindi sei libero di lasciare vuoto lo spazio tra le parentesi. Le parentesi non sono opzionali però.
  • All'interno del metodo (tra le parentesi graffe), troverai il codice effettivo del metodo. Può essere una o più righe di codice.

Per chiamare un metodo, scrivi semplicemente il suo nome seguito da una serie di parentesi. Tra parentesi, dovresti scrivere i parametri (se il metodo li dovesse accettare), in questo modo:

AddNumbers(3, 39);

Poiché i metodi sono definiti sulle classi, è possibile che si desideri chiamare un metodo su un'altra classe rispetto a quello in cui ci si trova attualmente. In tal caso, è necessario aggiungere un prefisso alla chiamata del metodo con il nome dell'oggetto o nel caso di un metodo statico (altro su quelli successivi), il nome della classe. Ecco un esempio in cui chiamiamo il metodo AddNumbers (), che è stato inserito in un'altra classe chiamata MathHelper:

public void DoMath()
{
	MathHelper mathHelper = new MathHelper();
	int result = mathHelper.AddNumbers(4, 38);
	Console.WriteLine(result);
}	

Tipo di ritorno metodo

Parliamo di più sui tipi di ritorno. Negli esempi precedenti, abbiamo definito un metodo con un numero intero come tipo restituito, ma sei libero di restituire qualsiasi altro tipo di tipo di dati C #. In effetti, puoi persino dichiarare un metodo che non restituisce nulla, come abbiamo visto con il nostro metodo DoMath () sopra. Nota che ho sostituito int con la parola chiave void , il che significa che questo metodo non dovrebbe restituire nulla. In alcuni linguaggi di programmazione, le funzioni senza un tipo restituito sono denominate procedure , ma in C # sono sempre chiamate metodi.

Dovresti essere consapevole che quando dichiari un tipo restituito per un metodo, DEVI restituire qualcosa, altrimenti il ​​compilatore si lamenterà immediatamente:

public int AddNumbers(int number1, int number2)
{
	Console.WriteLine(number1 + number2);
}
Compiler error: AddNumbers(int, int)': not all code paths return a value

Ciò significa che hai bisogno di una (o più) parole chiave di ritorno all'interno del tuo metodo se ha un tipo di ritorno dichiarato. Potrebbe essere necessario più di uno per le situazioni in cui sono presenti più percorsi di codice possibili, come questo:

public int AddLargeNumbers(int number1, int number2)
{			
	if((number1 > 1000) && (number2 > 1000))
	{
		return number1 + number2;
	}
	return 0;
}

In questo caso, abbiamo bisogno anche della seconda dichiarazione di ritorno - se viene omessa, il compilatore si lamenterà, perché la nostra dichiarazione condizionale potrebbe impedire che la prima dichiarazione di ritorno venga raggiunta.

Sommario

I metodi consentono di incapsulare e riutilizzare la funzionalità da più punti. Fornendo parametri diversi a un metodo, è possibile ottenere risultati diversi. Abbiamo usato alcuni parametri negli esempi sopra, ma nel prossimo articolo, approfondiremo molto l'argomento dei parametri del metodo.


This article has been fully translated into the following languages: Is your preferred language not on the list? Click here to help us translate this article into your language!