Il pattern matching in C#
In questa lezione userai un'espressione switch con i pattern per controllare tipo e valore dei dati in modo ordinato e sicuro.
Introduzione
Il pattern matching permette di verificare di che tipo è un valore, se soddisfa una condizione e di estrarne subito i dati da usare, tutto in una sola espressione. Sostituisce il controllo del tipo seguito dalla conversione manuale, lungo e facile da sbagliare.
L'espressione switch della funzione Describe controlla i pattern nell'ordine: null per i dati mancanti, int number when number > 0 per gli interi positivi, string { Length: > 0 } per le stringhe non vuote e _ per tutti gli altri casi. Con il valore 12 corrisponde il pattern dell'intero positivo e il risultato è positive 12.
Guarda come funziona
Sposta il cursore per cambiare il giorno. Il programma salta direttamente al case corrispondente, o al default se nessuno corrisponde.
Esempio C# eseguibile
using System;
class Program
{
static string Describe(object? value) => value switch
{
null => "missing",
int number when number > 0 => $"positive {number}",
string { Length: > 0 } text => $"text: {text}",
_ => "other"
};
static void Main() => Console.WriteLine(Describe(12));
}
positive 12Esercitati 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.
- Triangle Classification Classify three side lengths as invalid, equilateral, isosceles, or scalene. Facile
- Dispari, Pari o Nessuno dei due Classifica un numero in base al fatto che sia un intero dispari, un intero pari o nessuno dei due. Facile