Oefening: tekenreeksen combineren met behulp van tekenreeksinterpolatie
Hoewel tekenreekssamenvoeging eenvoudig en handig is, neemt de interpolatie van tekenreeksen toe in situaties waarin u veel letterlijke tekenreeksen en variabelen moet combineren tot één opgemaakt bericht.
Wat is tekenreeksinterpolatie?
Tekenreeksinterpolatie combineert meerdere waarden in één letterlijke tekenreeks met behulp van een 'sjabloon' en een of meer interpolatie-expressies. Een interpolatie-expressie wordt aangegeven door een symbool voor openen en sluiten van accolades { }. U kunt elke C#-expressie plaatsen die een waarde in de accolades retourneert. De letterlijke tekenreeks wordt een sjabloon wanneer deze wordt voorafgegaan door het $ teken.
Met andere woorden, in plaats van de volgende regel code te schrijven:
string message = greeting + " " + firstName + "!";
In plaats daarvan kunt u deze beknoptere coderegel schrijven:
string message = $"{greeting} {firstName}!";
In dit eenvoudige voorbeeld slaat u enkele toetsaanslagen op. U kunt zich voorstellen hoeveel beknoptere tekenreeksinterpolatie in complexere bewerkingen kan zijn. Bovendien vinden velen de syntaxis van de tekenreeksinterpolatie schoner en gemakkelijker te lezen.
In de volgende oefening gaat u de vorige berichten herschrijven met behulp van tekenreeksinterpolatie.
Tekenreeksinterpolatie gebruiken om een letterlijke tekenreeks en een variabelewaarde te combineren
Als u twee tekenreeksen wilt interpoleren, maakt u een letterlijke tekenreeks en voorvoegt u de tekenreeks met het $ symbool. De letterlijke tekenreeks moet ten minste één set accolades {} bevatten en binnen die tekens gebruikt u de naam van een variabele.
Selecteer alle code die u eerder hebt geschreven in de C#-code-editor en druk op Delete of Backspace om deze te verwijderen.
Voer de volgende code in de C#-code-editor in:
string firstName = "Bob"; string message = $"Hello {firstName}!"; Console.WriteLine(message);Voer de code nu uit. U ziet het volgende resultaat in de uitvoerconsole:
Hello Bob!
Tekenreeksinterpolatie gebruiken met meerdere variabelen en letterlijke tekenreeksen
U kunt verschillende interpolatiebewerkingen uitvoeren in dezelfde coderegel.
Selecteer alle code die u eerder hebt geschreven in de C#-code-editor en druk op Delete of Backspace om deze te verwijderen.
Voer de volgende code in de C#-code-editor in:
int version = 11; string updateText = "Update to Windows"; string message = $"{updateText} {version}"; Console.WriteLine(message);Voer de code nu uit. U ziet het volgende resultaat in de uitvoerconsole:
Update to Windows 11
Tussenliggende variabelen vermijden
Net zoals u in de vorige oefening hebt gedaan, kunt u de tijdelijke variabele elimineren om het bericht op te slaan.
Wijzig de code die u eerder hebt geschreven naar het volgende:
int version = 11; string updateText = "Update to Windows"; Console.WriteLine($"{updateText} {version}!");Voer de code nu uit. Het resultaat in de uitvoerconsole moet hetzelfde zijn, zelfs als u de code hebt vereenvoudigd:
Update to Windows 11!
Letterlijke letterlijke bewoordingen en tekenreeksinterpolatie combineren
Stel dat u een letterlijke tekst in uw sjabloon moet gebruiken. U kunt zowel het letterlijke voorvoegsel als @ het tekenreeksinterpolatiesymbool $ samen gebruiken.
Verwijder de code uit de vorige stappen en typ de volgende code in de C#-code-editor:
string projectName = "First-Project"; Console.WriteLine($@"C:\Output\{projectName}\Data");Voer nu de code uit en u ziet het volgende resultaat.
C:\Output\First-Project\DataIn dit voorbeeld kunt u met het
$symbool naar deprojectNamevariabele in de accolades verwijzen, terwijl u met het@symbool het niet-gescapede\teken kunt gebruiken.
Samenvatting
Dit is wat u tot nu toe hebt geleerd over tekenreeksinterpolatie:
- Tekenreeksinterpolatie biedt een verbetering ten opzichte van tekenreekssamenvoeging door het aantal tekens te verminderen dat in sommige situaties vereist is.
- U kunt tekenreeksinterpolatie en letterlijke letterlijke bewoordingen combineren door de symbolen voor elk te combineren en dat te gebruiken als voorvoegsel voor de tekenreekssjabloon.