演習 - 文字列補間を使用して文字列を結合する

完了

文字列連結は単純で便利ですが、 文字列補間 は、多くのリテラル文字列と変数を 1 つの書式設定されたメッセージに結合する必要がある状況で人気が高まっています。

文字列補間とは?

文字列補間では、"テンプレート" と 1 つ以上の 補間式を使用して、複数の値を 1 つのリテラル文字列に結合します。 補間式は左右の中かっこ記号 { } で示されます。 値を返す任意の C# 式を中かっこ内に配置できます。 リテラル文字列は、 $ 文字のプレフィックスが付くとテンプレートになります。

つまり、次のコード行を記述する代わりに、

string message = greeting + " " + firstName + "!";

代わりに、このより簡潔なコード行を記述できます。

string message = $"{greeting} {firstName}!";

この簡単な例では、いくつかのキーストロークを保存します。 より複雑な操作で、より簡潔な文字列補間がどれだけ可能であるかを想像できます。 さらに、多くの人が文字列補間構文をよりクリーンで読みやすくしています。

次の演習では、文字列補間を使用して前のメッセージを書き換えます。

文字列補間を使用してリテラル文字列と変数値を結合する

2 つの文字列をまとめて補間するには、リテラル文字列を作成し、文字列の前に $ 記号を付けます。 リテラル文字列には、少なくとも 1 つの中かっこ {} を含める必要があります。また、その文字の中には、変数の名前を使用します。

  1. .NET エディターですべてのコードを選択し、 Delete キーまたは Backspace キーを押して削除します。

  2. .NET エディターで、次のコードを入力します。

    string firstName = "Bob";
    string message = $"Hello {firstName}!";
    Console.WriteLine(message);
    
  3. ここでコードを実行します。 出力コンソールに次の結果が表示されます。

    Hello Bob!
    

複数の変数とリテラル文字列で文字列補間を使用する

同じコード行で複数の補間操作を実行できます。

  1. 先程記述したコードを次のコードのように修正します。

    int version = 11;
    string updateText = "Update to Windows";
    string message = $"{updateText} {version}";
    Console.WriteLine(message);
    
  2. ここでコードを実行します。 出力コンソールに次の結果が表示されます。

    Update to Windows 11
    

中間変数を回避する

前の演習で行ったように、メッセージを格納する一時変数を削除できます。

  1. 先程記述したコードを次のコードのように修正します。

    int version = 11;
    string updateText = "Update to Windows";
    Console.WriteLine($"{updateText} {version}!");
    
  2. ここでコードを実行します。 コードを簡略化しても、出力コンソールの結果は同じになるはずです。

    Update to Windows 11!
    

逐語的リテラルと文字列補間を組み合わせる

テンプレートで文字通りのリテラルを使用する必要があるとします。 逐語的リテラル プレフィックスシンボル @ と文字列補間 $ シンボルの両方を一緒に使用できます。

  1. 前の手順からコードを削除し、次のコードを .NET エディターに入力します。

    string projectName = "First-Project";
    Console.WriteLine($@"C:\Output\{projectName}\Data");
    
  2. 次に、コードを実行すると、次の結果が表示されます。

    C:\Output\First-Project\Data
    

    この例では、 $ シンボルを使用すると、中かっこ内の projectName 変数を参照できますが、 @ シンボルではエスケープされていない \ 文字を使用できます。

まとめ

これまでに文字列補間について学習した内容を次に示します。

  • 文字列補間は、状況によっては必要な文字数を減らすことで、文字列連結よりも向上します。
  • それぞれのシンボルを組み合わせ、文字列テンプレートのプレフィックスとして使用することで、文字列補間と逐語リテラルを組み合わせることができます。