演習 - 文字列補間を使用して文字列を結合する
文字列連結は簡単で便利です。たくさんのリテラル文字列や変数を組み合わせ、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
変数を参照できますが、@
記号を使うとエスケープされていない\
文字を使用できます。
要点
これまでに文字列補間について学習した内容を次に示します。
- 文字列補間を利用すると、一部の状況で必要とされる文字数を減らすことで、文字列連結が改善される。
- それぞれの記号を組み合わせ、それを文字列テンプレートのプレフィックスとして使用して、文字列補間と逐語的リテラルを結合できる。