Argomenti C# importanti

Delegate ed espressioni lambda in C#

In questa lezione passerai una funzione come parametro a un altro metodo con il delegate Func e un'espressione lambda.

Introduzione

Un delegate è un tipo che rappresenta un metodo e permette di passare un comportamento come se fosse un valore. Un'espressione lambda è un modo breve di scrivere una funzione direttamente sul posto, come (a, b) => a * b. Combinando i due, scrivi metodi flessibili che ricevono dall'esterno il modo di elaborare i dati.

Il tipo Func<int, int, int> rappresenta una funzione che riceve due interi e restituisce un intero. Il metodo Apply non conosce in anticipo il calcolo, si limita a chiamare operation(left, right). Ricevendo la lambda (left, right) => left * right, Apply esegue la moltiplicazione e restituisce 42.

Esempio C# eseguibile

C#
Esegui il codice →
Program.cs
using System;

class Program
{
    static int Apply(int left, int right, Func<int, int, int> operation)
        => operation(left, right);

    static void Main()
    {
        int result = Apply(6, 7, (left, right) => left * right);
        Console.WriteLine(result);
    }
}
Risultato dell'esecuzione
42

Esercitati con il debugger

Metti un breakpoint su un'assegnazione o una condizione importante, fai clic su Debug ed esamina i valori locali prima di passare alla riga successiva.

Esercitati con una sfida

Usa ciò che questa lezione spiega per risolvere un problema reale. Ogni sfida gira nel browser, con test immediati e una revisione dell'IA.

Tutte le sfide