Övning – Kombinera strängar med stränginterpolation

Slutförd

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.

  1. Markera all kod i .NET-redigeraren och tryck på Ta bort eller Backspace för att ta bort den.

  2. Ange följande kod i .NET-redigeraren:

    string firstName = "Bob";
    string message = $"Hello {firstName}!";
    Console.WriteLine(message);
    
  3. 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.

  1. Ändra koden som du skrev tidigare till följande:

    int version = 11;
    string updateText = "Update to Windows";
    string message = $"{updateText} {version}";
    Console.WriteLine(message);
    
  2. 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.

  1. Ändra koden som du skrev tidigare till följande:

    int version = 11;
    string updateText = "Update to Windows";
    Console.WriteLine($"{updateText} {version}!");
    
  2. 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.

  1. 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");
    
  2. Kör nu koden så bör du se följande resultat.

    C:\Output\First-Project\Data
    

    I det här exemplet kan du använda symbolen $ för att referera till variabeln projectName 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 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.