演習 - 文字列補間を使用して文字列を結合する
文字列連結は単純で便利ですが、 文字列補間 は、多くのリテラル文字列と変数を 1 つの書式設定されたメッセージに結合する必要がある状況で人気が高まっています。
文字列補間とは?
文字列補間では、"テンプレート" と 1 つ以上の 補間式を使用して、複数の値を 1 つのリテラル文字列に結合します。 補間式は左右の中かっこ記号 { }
で示されます。 値を返す任意の C# 式を中かっこ内に配置できます。 リテラル文字列は、 $
文字のプレフィックスが付くとテンプレートになります。
つまり、次のコード行を記述する代わりに、
string message = greeting + " " + firstName + "!";
代わりに、このより簡潔なコード行を記述できます。
string message = $"{greeting} {firstName}!";
この簡単な例では、いくつかのキーストロークを保存します。 より複雑な操作で、より簡潔な文字列補間がどれだけ可能であるかを想像できます。 さらに、多くの人が文字列補間構文をよりクリーンで読みやすくしています。
次の演習では、文字列補間を使用して前のメッセージを書き換えます。
文字列補間を使用してリテラル文字列と変数値を結合する
2 つの文字列をまとめて補間するには、リテラル文字列を作成し、文字列の前に $
記号を付けます。 リテラル文字列には、少なくとも 1 つの中かっこ {}
を含める必要があります。また、その文字の中には、変数の名前を使用します。
.NET エディターですべてのコードを選択し、 Delete キーまたは Backspace キーを押して削除します。
.NET エディターで、次のコードを入力します。
string firstName = "Bob"; string message = $"Hello {firstName}!"; Console.WriteLine(message);
ここでコードを実行します。 出力コンソールに次の結果が表示されます。
Hello Bob!
複数の変数とリテラル文字列で文字列補間を使用する
同じコード行で複数の補間操作を実行できます。
先程記述したコードを次のコードのように修正します。
int version = 11; string updateText = "Update to Windows"; string message = $"{updateText} {version}"; Console.WriteLine(message);
ここでコードを実行します。 出力コンソールに次の結果が表示されます。
Update to Windows 11
中間変数を回避する
前の演習で行ったように、メッセージを格納する一時変数を削除できます。
先程記述したコードを次のコードのように修正します。
int version = 11; string updateText = "Update to Windows"; Console.WriteLine($"{updateText} {version}!");
ここでコードを実行します。 コードを簡略化しても、出力コンソールの結果は同じになるはずです。
Update to Windows 11!
逐語的リテラルと文字列補間を組み合わせる
テンプレートで文字通りのリテラルを使用する必要があるとします。 逐語的リテラル プレフィックスシンボル @
と文字列補間 $
シンボルの両方を一緒に使用できます。
前の手順からコードを削除し、次のコードを .NET エディターに入力します。
string projectName = "First-Project"; Console.WriteLine($@"C:\Output\{projectName}\Data");
次に、コードを実行すると、次の結果が表示されます。
C:\Output\First-Project\Data
この例では、
$
シンボルを使用すると、中かっこ内のprojectName
変数を参照できますが、@
シンボルではエスケープされていない\
文字を使用できます。
まとめ
これまでに文字列補間について学習した内容を次に示します。
- 文字列補間は、状況によっては必要な文字数を減らすことで、文字列連結よりも向上します。
- それぞれのシンボルを組み合わせ、文字列テンプレートのプレフィックスとして使用することで、文字列補間と逐語リテラルを組み合わせることができます。