Övning – Kombinera strängar med stränginterpolation
Strängsammanfogning är enkelt och bekvämt, men stränginterpolation växer i popularitet i situationer där du behöver kombinera många literalsträngar och variabler i ett enda formaterat meddelande.
Vad är stränginterpolation?
Stränginterpolation kombinerar flera värden i en enda literalsträng 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ängen literal blir en mall när den prefixeras av $ tecknet.
Med andra ord, i stället för att skriva följande kodrad:
string message = greeting + " " + firstName + "!";
Du kan skriva den här mer koncisa kodraden i stället:
string message = $"{greeting} {firstName}!";
I det här enkla exemplet sparar du några tangenttryckningar. Du kan föreställa dig hur mycket mer koncis stränginterpolation kan vara i mer komplexa åtgärder. Dessutom tycker många att stränginterpolationssyntaxen är renare och lättare att läsa.
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 literalsträng och prefixar strängen med symbolen $ . 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 interpoleringsåtgärder på 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 den ordagranna literalprefixsymbolen @ och stränginterpolationssymbolen $ 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 nu koden så bör du se följande resultat.
C:\Output\First-Project\DataI det här exemplet kan du använda symbolen
$för att referera till variabelnprojectNameinuti 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 ger en förbättring jämfört med strängsammanfogning genom att minska antalet tecken som krävs i vissa situationer.
- Du kan kombinera stränginterpolation och ordagranna literaler genom att kombinera symbolerna för var och en och använda det som prefix för strängmallen.