Esplorare delegati e lambda
Capisca i delegati e le espressioni lambda per scrivere codice conciso e flessibile
Esplorare delegati e lambda è una lezione C# Academy gratuita su CoddyKit. Questa è la lezione 4 di 5. Puoi leggere la lezione completa qui gratuitamente — poi esercitati direttamente nel browser con un editor di codice integrato e un tutor IA disponibile 24/7. Fa parte del percorso di apprendimento C# Academy, e i tuoi progressi si sincronizzano tra il web e l'app CoddyKit. Il corso C# Academy include 5 lezioni in totale.
Utilizzare le lambda con i delegati
Le lambda possono essere assegnate direttamente ai delegati. Esempio:

Che cos'è un delegato?
Un delegato è un tipo che contiene riferimenti a metodi con una firma specifica. I delegati consentono di passare i metodi come parametri o di assegnarli dinamicamente.
Esempio: i delegati vengono spesso utilizzati per i callback e la gestione degli eventi.
Definire e utilizzare i delegati
È possibile definire un delegato utilizzando la parola chiave delegate. Esempio:
Punto chiave: i delegati offrono un modo per incapsulare i metodi.
using System;
class Program {
// Define a delegate
public delegate void PrintDelegate(string message);
static void Main() {
PrintDelegate print = PrintMessage; // Assign method to delegate
print("Hello, Delegates!"); // Call the method via the delegate
}
static void PrintMessage(string message) {
Console.WriteLine(message);
}
}
Che cos'è un'espressione lambda?
Un'espressione lambda è un modo conciso per rappresentare un metodo anonimo in C#. Utilizza la sintassi (parameters) => expression.
Esempio: (x, y) => x + y rappresenta un metodo che somma due numeri.
Suggerimento: le lambda vengono spesso utilizzate con LINQ e i delegati per una maggiore concisione e chiarezza.
Espressioni lambda con i delegati
Utilizzare le lambda con i delegati
Le lambda possono essere assegnate direttamente ai delegati. Esempio:
Punto chiave: le lambda rendono il codice più conciso e leggibile.
using System;
class Program {
public delegate int MathOperation(int x, int y);
static void Main() {
MathOperation add = (x, y) => x + y; // Lambda for addition
Console.WriteLine("Result: " + add(10, 20)); // Outputs: Result: 30
}
}
Delegati multicast
Un singolo delegato può fare riferimento a più metodi. Tutti i metodi vengono richiamati in ordine. Esempio:
using System;
class Program {
public delegate void Notify(string message);
static void Main() {
Notify notify = PrintMessage;
notify += LogMessage;
notify("Hello, Multicast Delegates!"); // Calls both methods
}
static void PrintMessage(string message) {
Console.WriteLine("Print: " + message);
}
static void LogMessage(string message) {
Console.WriteLine("Log: " + message);
}
}
Sfida pratica
Crei un programma che utilizzi un delegato StringOperation per eseguire manipolazioni di stringhe, come la conversione in maiuscolo e l'inversione di una stringa. Esempio:
using System;
class Program {
public delegate string StringOperation(string input);
static void Main() {
StringOperation operations = ToUpperCase;
operations += ReverseString;
string input = "Hello";
foreach (var operation in operations.GetInvocationList()) {
Console.WriteLine(((StringOperation)operation)(input));
}
}
static string ToUpperCase(string input) {
return input.ToUpper();
}
static string ReverseString(string input) {
char[] chars = input.ToCharArray();
Array.Reverse(chars);
return new string(chars);
}
}
Buone pratiche per delegati e lambda
Ecco alcune buone pratiche:
- Utilizzi i delegati per implementare callback e gestione degli eventi.
- Preferisca le espressioni lambda per un codice conciso e chiaro.
- Combini le lambda con LINQ per un'elaborazione efficiente dei dati.
- Eviti lambda eccessivamente complesse per mantenere la leggibilità.
Suggerimento: utilizzi nomi significativi per i parametri nelle lambda per migliorare la chiarezza del codice.
Ottimo lavoro!
Congratulazioni! Ha imparato a utilizzare delegati ed espressioni lambda per scrivere codice funzionale e basato sugli eventi in C#. Nella prossima lezione esploreremo la reflection in C#, una potente funzionalità per l'analisi dei tipi a runtime. Continuiamo a programmare!

Impara C# con un tutor IA — gratis
Scrivi ed esegui vero codice nel tuo browser, ricevi aiuto istantaneo da un tutor IA disponibile 24/7, e riprendi da dove hai lasciato sul web o nell'app.
- Corsi
- 93
- Lezioni
- 346
Domande Frequenti
La lezione «Esplorare delegati e lambda» è gratuita?
Sì — il testo completo di «Esplorare delegati e lambda» è gratuito qui sul web. Per esercitarvi in modo interattivo (un editor di codice integrato e un tutor IA 24/7) e sbloccare il resto del corso C# Academy, passa a CoddyKit PRO. Il corso C# Academy include 5 lezioni in totale.
Cosa imparerò in «Esplorare delegati e lambda»?
Capisca i delegati e le espressioni lambda per scrivere codice conciso e flessibile Eserciti C# Academy con codice pratico che esegui direttamente nel browser, e un tutor IA 24/7 risponde alle tue domande mentre lavori sulla lezione.
Ho bisogno di esperienza per iniziare C# Academy?
Non è richiesta alcuna esperienza precedente. C# Academy su CoddyKit è strutturato per principianti e studenti avanzati, quindi puoi iniziare da qui o dall'inizio e procedere al tuo ritmo. Questa è la lezione 4 di 5.
Quanto tempo richiede la lezione «Esplorare delegati e lambda»?
La maggior parte delle lezioni CoddyKit richiede circa 5–10 minuti. Ogni lezione è breve e interattiva, quindi fai progressi costanti e riprendi esattamente da dove hai lasciato su web e app.
Posso scrivere ed eseguire codice in questa lezione C# Academy?
Sì. Ogni lezione C# Academy include un editor di codice integrato, quindi scrivi ed esegui codice reale direttamente nel tuo browser e ricevi feedback istantaneo dall'IA — nessuna configurazione locale necessaria.
Tutte le lezioni di questo corso
- Generics in C#
- Async e await: lavorare con codice asincrono
- Capire thread e task
- Esplorare delegati e lambda
- Capire la reflection in C#