C# Academy · Lezione

Esplorare delegati e lambda

Capisca i delegati e le espressioni lambda per scrivere codice conciso e flessibile

Lezione 4 di 510 passaggi

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:

Esplorare delegati e lambda — illustrazione 1

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!

Esplorare delegati e lambda — illustrazione 10
Gratis per iniziare

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

  1. Generics in C#
  2. Async e await: lavorare con codice asincrono
  3. Capire thread e task
  4. Esplorare delegati e lambda
  5. Capire la reflection in C#
← Torna a C# Academy