Cvičení – kombinování řetězců pomocí interpolace řetězců
Zřetězení řetězců je sice jednoduché a pohodlné, ale roste i obliba interpolace řetězců, a to v situacích, kdy potřebujete sloučit mnoho literálových řetězců a proměnných do jedné naformátované zprávy.
Co je interpolace řetězců?
Interpolace řetězců slučuje více hodnot do jednoho literálového řetězce, který využívá „šablonu“ a jeden nebo více interpolačních výrazů. Interpolační výraz je označen levou a pravou složenou závorkou { }
. Do složených závorek můžete vložit libovolný výraz jazyka C#, který vrátí hodnotu. Literálový řetězec se stane šablonou, když získá znak $
jako předponu.
Jinými slovy, namísto zápisu následujícího řádku kódu:
string message = greeting + " " + firstName + "!";
Můžete napsat tento zestručněný řádek kódu:
string message = $"{greeting} {firstName}!";
V tomto jednoduchém příkladu ušetříte jen několik úhozů. Můžete si ale představit, jaké zestručnění může interpolace řetězců znamenat ve složitějších operacích. Mnoha lidem navíc interpolace řetězců připadne syntakticky čistější a snáze čitelná.
V následujícím cvičení přepíšete předchozí zprávy pomocí interpolace řetězců.
Použití interpolace řetězců ke kombinování literálového řetězce a hodnoty proměnné
Pokud chcete interpolací spojit dva řetězce, vytvořte literálový řetězec a vložte před něj znak $
. Řetězec literálu by měl obsahovat alespoň jednu sadu složených závorek {}
a uvnitř těchto znaků použijte název proměnné.
Vyberte veškerý kód v editoru .NET a stisknutím klávesy Delete nebo Backspace ho odstraňte.
Do editoru .NET zadejte následující kód:
string firstName = "Bob"; string message = $"Hello {firstName}!"; Console.WriteLine(message);
Teď tento kód spusťte. Na výstupní konzole uvidíte následující výsledek:
Hello Bob!
Použití interpolace řetězců s více proměnnými a řetězci literálů
V jednom řádku kódu můžete provést několik operací interpolace.
Upravte kód, který jste napsali dříve, následujícím způsobem:
int version = 11; string updateText = "Update to Windows"; string message = $"{updateText} {version}"; Console.WriteLine(message);
Teď tento kód spusťte. Na výstupní konzole uvidíte následující výsledek:
Update to Windows 11
Vyhněte se přechodným proměnným
Stejně jako v předchozím cvičení můžete odstranit dočasnou proměnnou pro uložení zprávy.
Upravte kód, který jste napsali dříve, následujícím způsobem:
int version = 11; string updateText = "Update to Windows"; Console.WriteLine($"{updateText} {version}!");
Teď tento kód spusťte. Výsledek ve výstupní konzole by měl být stejný i v případě, že jste kód zjednodušili:
Update to Windows 11!
Kombinování doslovných literálů a interpolace řetězců
Předpokládejme, že v šabloně potřebujete použít doslovný literál. Můžete současně použít symbol předpony doslovného literálu @
i symbol interpolace řetězců $
.
Odstraňte kód z předchozích kroků a do editoru .NET zadejte následující kód:
string projectName = "First-Project"; Console.WriteLine($@"C:\Output\{projectName}\Data");
Teď tento kód spusťte a uvidíte následující výsledek.
C:\Output\First-Project\Data
V tomto příkladu
$
symbol umožňuje odkazovat naprojectName
proměnnou uvnitř složených závorek, zatímco@
symbol umožňuje použít nepoužítelný\
znak.
Rekapitulace
O interpolaci řetězců jste se zatím dozvěděli:
- Interpolace řetězců je výhodnější než jejich zřetězení tím, že v některých situacích redukuje počet nutných znaků.
- Interpolaci řetězců můžete zkombinovat s doslovnými literály tím, že sloučíte jejich symboly a použijete je jako předponu šablony řetězce.