Cvičení – kombinování řetězců pomocí interpolace řetězců

Dokončeno

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é.

  1. Vyberte veškerý kód v editoru .NET a stisknutím klávesy Delete nebo Backspace ho odstraňte.

  2. Do editoru .NET zadejte následující kód:

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

  1. 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);
    
  2. 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.

  1. 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}!");
    
  2. 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ů $.

  1. 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");
    
  2. 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 na projectName 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.