Sin dalla prima versione di C# abbiamo avuto a disposizione il metodo Format della classe String per inserire dei valori all'interno di una stringa a runtime. Prendiamo come esempio il seguente codice.
var hello = String.Format("Ciao {0}. Come va?", name);
Questo codice è molto semplice e intuitivo: a runtime il segnaposto "{0}" verrà sostituito dal valore della variabile name. Tuttavia questo metodo presenta alcuni inconvenienti. Il primo è che se, per errore, passiamo meno parametri di quanti sono i segnaposti, otteniamo un errore solo a runtime e non in fase di compilazione. Il secondo è che se abbiamo molti segnaposti, la lettura e manutenibilità del codice ne risente.
Tutti questi problemi sono superati da C# 6 grazie all'interpolazione di stringhe che vediamo in azione nel seguente metodo:
var hello = $"Ciao {name}. Come va?";
Aggiungendo il carattere $ all'inizio della stringa viene abilitata l'interpolazione. Inserendo una variabile tra parentesi graffe all'interno della stringa indichiamo al runtime di sostituire il nome della variabile con il valore della variabile stessa. In questo modo il codice diventa ancora più leggibile in quanto il segnaposto non dichiara solo il posto in cui verrà inserito un valore, ma anche da dove il valore proviene.
Inoltre, Visual Studio 2015 offre pieno supporto a questa feature quindi all'interno del segnaposto abiamo autocomplete e refactoring oltre al compile time checking sul nome della variabile. Queste caratteristiche rendono l'interpolazione una delle novità più utili di C#.
Commenti
Per inserire un commento, devi avere un account.
Fai il login e torna a questa pagina, oppure registrati alla nostra community.
Approfondimenti
Registrare servizi multipli tramite chiavi in ASP.NET Core 8
Ottimizzare le performance delle collection con le classi FrozenSet e FrozenDictionary
Evitare il flickering dei componenti nel prerender di Blazor 8
Visualizzare le change sul plan di Terraform tramite le GitHub Actions
Assegnare un valore di default a un parametro di una lambda in C#
Eseguire operazioni con timeout in React
Evitare la command injection in un workflow di GitHub
Eseguire le GitHub Actions offline
Eseguire query verso tipi non mappati in Entity Framework Core
Short-circuiting della Pipeline in ASP.NET Core
Verificare la provenienza di un commit tramite le GitHub Actions
Utilizzare l'operatore GroupBy come ultima istruzione di una query LINQ in Entity Framework