Övning – Kombinera strängar med stränginterpolation
Även om det är enkelt och praktiskt att sammanlänka strängar så har stränginterpolation blivit allt mer populärt i situationer där du behöver kombinera många strängliteraler och variabler i ett enda formaterat meddelande.
Vad är stränginterpolation?
Med stränginterpolation kombinerar du flera värden till en enda strängliteral med hjälp av en ”mall” och ett eller flera interpolationsuttryck. Ett interpolationsuttryck indikeras av en inledande och avslutande klammerparentessymbol { }
. Du kan placera valfritt C#-uttryck som returnerar ett värde inuti klammerparenteserna. Strängliteralen blir till en mall när den föregås av tecknet $
.
I stället för att skriva följande kodrad:
string message = greeting + " " + firstName + "!";
Kan du alltså i stället skriva den här mer koncisa kodraden:
string message = $"{greeting} {firstName}!";
I det här enkla exemplet sparar du några få tangenttryckningar. När det gäller mer komplicerade åtgärder kan du däremot spara mycket tid och ansträngning med stränginterpolation. Dessutom tycker många att det blir enklare att läsa syntaxen när du använder stränginterpolation.
I följande övning skriver du om föregående meddelanden med hjälp av stränginterpolation.
Använd stränginterpolation för att kombinera en literalsträng och ett variabelvärde
Om du vill interpolera två strängar tillsammans skapar du en strängliteral och använder symbolen $
som prefix. Strängen literal ska innehålla minst en uppsättning klammerparenteser {}
och inuti de tecken som du använder namnet på en variabel.
Markera all kod i .NET-redigeraren och tryck på Ta bort eller Backspace för att ta bort den.
Ange följande kod i .NET-redigeraren:
string firstName = "Bob"; string message = $"Hello {firstName}!"; Console.WriteLine(message);
Kör sedan koden. Du bör se följande utdata i konsolen:
Hello Bob!
Använda stränginterpolation med flera variabler och literalsträngar
Du kan utföra flera interpoleringar i samma kodrad.
Ändra koden som du skrev tidigare till följande:
int version = 11; string updateText = "Update to Windows"; string message = $"{updateText} {version}"; Console.WriteLine(message);
Kör sedan koden. Du bör se följande utdata i konsolen:
Update to Windows 11
Undvik mellanliggande variabler
Precis som du gjorde i föregående övning kan du eliminera den tillfälliga variabeln för att lagra meddelandet.
Ändra koden som du skrev tidigare till följande:
int version = 11; string updateText = "Update to Windows"; Console.WriteLine($"{updateText} {version}!");
Kör sedan koden. Resultatet i utdatakonsolen bör vara detsamma även om du förenklade koden:
Update to Windows 11!
Kombinera ordagranna literaler och stränginterpolation
Anta att du behöver använda en ordagrann literal i mallen. Du kan använda både prefixsymbolen för ordagranna literaler @
och symbolen för stränginterpolation $
tillsammans.
Ta bort koden från föregående steg och skriv in följande kod i .NET-redigeraren:
string projectName = "First-Project"; Console.WriteLine($@"C:\Output\{projectName}\Data");
Kör sedan koden. Du bör se följande resultat.
C:\Output\First-Project\Data
I det här exemplet kan du använda symbolen
$
för att referera till variabelnprojectName
inuti klammerparenteserna, medan symbolen@
låter dig använda det ej kapslade\
tecknet.
Sammanfattning
Här är vad du har lärt dig om stränginterpolation hittills:
- Stränginterpolation är att föredra framför sammanlänkning eftersom du sparar in på mängden tecken i vissa situationer.
- Du kan kombinera stränginterpolation och ordagranna literaler genom att använda båda symbolerna i strängmallens prefix.