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
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);
}
}
42Esercitati con il debugger
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.
- Funzioni di attivazione Applica sigmoide, ReLU, Leaky ReLU o tanh a ogni valore di una lista. Facile