C# 6.0 以降では、文字列の中に変数や式を直接埋め込める文字列補間(interpolated string)が導入されました。従来の string.Format()
よりも可読性が高く、コードをシンプルに記述できます。この記事では $"…"
の基本的な使い方から便利な活用例までを解説します。
基本構文
文字列補間は $
を先頭に付けた文字列リテラルの中で、{ }
内に変数や式を記述することで利用できます。
string name = "Taro";
int age = 20;
// 文字列補間を使う場合
string message = $"名前は {name}、年齢は {age} 歳です。";
Console.WriteLine(message);
// 出力例: 名前は Taro、年齢は 20 歳です。
式を埋め込む
変数だけでなく、計算式やメソッド呼び出しの結果も埋め込めます。
int x = 5;
int y = 7;
Console.WriteLine($"合計は {x + y} です"); // 合計は 12 です
Console.WriteLine($"現在時刻: {DateTime.Now.ToString("HH:mm:ss")}");
書式指定と数値フォーマット
:
の後に書式指定子を追加することで、数値や日付を整形して出力できます。
double price = 1234.56;
DateTime today = DateTime.Today;
Console.WriteLine($"金額: {price:C}"); // 金額: ¥1,234
Console.WriteLine($"日付: {today:yyyy/MM/dd}"); // 日付: 2025/09/13
改行や verbatim 文字列との併用
$@"…"
のように $
と @
を組み合わせると、複数行文字列に補間を適用できます。
string name = "Hanako";
string multiLine = $@"こんにちは {name} さん
このメッセージは複数行にまたがっています。";
Console.WriteLine(multiLine);
エスケープが必要な場合
中かっこ {
や }
を文字として表示したい場合は {{
や }}
と二重に記述します。
Console.WriteLine($"式の中に波括弧を書く: {{example}}");
// 出力: 式の中に波括弧を書く: {example}
まとめ
- 文字列補間は
$"…"
で記述し、{ }
に変数や式を埋め込める - 数値や日付のフォーマットを簡潔に記述できる
@
と組み合わせて複数行文字列にも対応可能{{
}}
で中かっこ自体を表現できる
文字列補間を活用すれば、従来の string.Format()
よりも見やすく保守性の高いコードが書けます。実務でも頻繁に利用される機能なので、ぜひマスターしておきましょう。