CodeGym /Corsi /C# SELF /Introduzione alle funzioni (metodi) in C#

Introduzione alle funzioni (metodi) in C#

C# SELF
Livello 8, Lezione 2
Disponibile

1. Funzioni/Metodi in C#

Hai già imparato un sacco di comandi in C#, quindi puoi scrivere programmi abbastanza complessi. 10, 20, 30 righe di codice in un programma — non è poi così tanto, giusto?

Ma un programma con 100+ righe — quello sì che è grande, e capirci qualcosa diventa difficile. Si può semplificare la scrittura e la lettura di programmi con tanto codice?

Sì, e qui ci vengono in aiuto i metodi (funzioni).

Ma che cos'è un metodo? Se la facciamo semplice, un metodo è un gruppo di comandi con un nome unico. In altre parole, raggruppiamo alcune istruzioni, gli diamo un nome unico, e voilà — ecco il metodo.

Supponiamo che tu abbia del codice per disegnare un gatto:

Console.WriteLine("  |\\__/,|   (`\\");
Console.WriteLine("  |o_o  |__ _) )");
Console.WriteLine("  (____/   (_/ ");
Codice per disegnare un gatto

Ecco cosa stampa:

  |\__/,|   (`\
  |o_o  |__ _) )
  (____/   (_/

Puoi semplicemente spostarlo in un metodo separato e disegnare quanti gatti vuoi:

void WriteCat()
{
    Console.WriteLine("  |\\__/,|   (`\\");
    Console.WriteLine("  |o_o  |__ _) )");
    Console.WriteLine("  (____/   (_/ ");    
}

//disegniamo tre gatti
WriteCat();
WriteCat();
WriteCat();
Uso del metodo per stampare il gatto più volte

Quando il programma parte, ogni volta che esegui il comando WriteCat() verranno eseguite tutte le istruzioni dentro il metodo WriteCat(). Abbiamo semplicemente creato un nuovo comando (metodo), raggruppando più istruzioni.

Perché usare le funzioni:

  • Dividono il programma in parti, ognuna con il suo compito.
  • Semplificano il riutilizzo: scrivi una volta, usi quante volte vuoi.
  • Riduci la probabilità di errori: se c'è un bug nella funzione, lo sistemi in un solo posto.
  • Danno "nomi" alle azioni complesse — il codice diventa molto più leggibile.

Terminologia: funzione, metodo, procedura

In C# i termini funzione e metodo di solito significano la stessa cosa, ma ci sono piccole differenze.

  • Metodo — funzione che appartiene a una classe o a un oggetto (in C# praticamente tutto sono metodi).
  • Procedura — funzione che non restituisce un valore (void-metodi).
  • Funzione — in senso ampio, qualsiasi parte del programma con un nome che puoi chiamare.

Ufficialmente in C# si chiamano tutti metodi, ma se più avanti trovi "funzione" — non ti spaventare!

2. Sintassi della dichiarazione di un metodo: analizziamo tutto

Vediamo una funzione semplicissima, la classica "Hello, World!", ma spostiamo la stampa in un metodo separato:

using System;

class Program
{
    static void Main()
    {
        PrintHello();
    }

    static void PrintHello()	// stampiamo il testo Hello, World!
    {
        Console.WriteLine("Hello, World!");
    }
}
Esempio di dichiarazione e chiamata di un metodo

Analisi della sintassi:

Parte Esempio Descrizione
Modificatore
static
Indica che il metodo appartiene alla classe (dettagli — più avanti)
Tipo di ritorno
void
Indica che il metodo non restituisce nulla
Nome del metodo
PrintHello
Nome del metodo, usato per chiamarlo
Parametri
()
Argomenti (vuoto — nessun argomento)
Corpo del metodo
{ ... }
Codice eseguito quando chiami il metodo

Analogia:
Un metodo è come una macchinetta del caffè: metti i soldi (argomenti), premi il pulsante (chiami il metodo), la macchina fa il caffè (corpo del metodo), e ti dà il risultato (valore di ritorno) — oppure no, se è un void-metodo!

3. Come chiamare i metodi

Chiamare un metodo — basta scrivere il suo nome e le parentesi tonde, tutto qui:

PrintHello(); // Metodo senza parametri

int sum = Add(2, 3); // Metodo con parametri e risultato

Importante: puoi chiamare un metodo solo dopo che è stato dichiarato (o se la dichiarazione è "sopra" nel codice, oppure nello stesso classe).

4. Metodi con parametri

Puoi passare parametri a un metodo. Questo rende il metodo flessibile e personalizzabile per ogni situazione. In pratica i parametri sono variabili del metodo, a cui assegni valori quando chiami il metodo. I parametri vanno specificati quando crei il metodo.

static void Greet(string name)
{
    Console.WriteLine($"Ciao, {name}!");
}

// Uso:
Greet("Alice");
Greet("Bob");
Metodo con parametro

Parametri — sono variabili a cui passi valori quando chiami il metodo.

Parte Esempio Descrizione
Tipo del parametro
string
Tipo del valore accettato
Nome del parametro
name
Nome da usare nel metodo

Chiamate:
Greet("Alice");name riceve il valore "Alice".

Più parametri

Puoi dichiarare più parametri separati da virgola:

static void PrintSum(int a, int b)
{
    Console.WriteLine($"Somma: {a + b}");
}

// Uso:
PrintSum(5, 7); // Somma: 12
Metodo con più parametri

5. Parametri-valore e parametri-riferimento

I parametri di una funzione sono variabili normali, e valgono le stesse regole delle altre variabili.

Quindi ricorda: quando passi un array a un metodo, passi il riferimento all'array, cioè il metodo può modificare il contenuto dell'array. Per i tipi semplici (int, double), viene copiata solo il valore.

static void ZeroFirstGrade(int[] voti)
{
    voti[0] = 0; // Cambia l'array originale!
}

// Uso:
int[] a = {1, 2, 3, 4, 5};
ZeroFirstGrade(a);
Console.WriteLine(a[0]);	//stampa 0
Passaggio di array per riferimento — il metodo cambia i dati originali

In pratica succede questo:

static void ZeroFirstGrade(int[] voti)
{
    voti[0] = 0; // Cambia l'array originale!
}

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

//ZeroFirstGrade(a);
int[] voti = a;
voti[0] = 0;

Console.WriteLine(a[0]);	//stampa 0
Analogia del passaggio di array per riferimento
2
Compito
C# SELF, livello 8, lezione 2
Bloccato
Creazione di un metodo senza parametri
Creazione di un metodo senza parametri
2
Compito
C# SELF, livello 8, lezione 2
Bloccato
Creazione di un metodo con parametro
Creazione di un metodo con parametro
Commenti
TO VIEW ALL COMMENTS OR TO MAKE A COMMENT,
GO TO FULL VERSION