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
Utilizzare WhenEach per processare i risultati di una lista di task
Fissare una versione dell'agent nelle pipeline di Azure DevOps
Referenziare un @layer più alto in CSS
Creare agenti facilmente con Azure AI Agent Service
Utilizzare Intersect e Except per filtrare set di dati in TSql
Eseguire una ricerca avanzata per recuperare le issue di GitHub
Supportare la crittografia di ASP.NET Core con Azure Container App
Montare Azure Blob Storage su Linux con BlobFuse2
Recuperare l'ultima versione di una release di GitHub
Generare HTML a runtime a partire da un componente Razor in ASP.NET Core
Bloccare l'esecuzione di un pod in mancanza di un'artifact attestation di GitHub
Esporre i propri servizi applicativi con Semantic Kernel e ASP.NET Web API