2016年5月31日

C# 文字列リテラル(補間文字列・逐語的文字列)まとめ

C# 6.0 から補間文字列が追加されて、文字列リテラルの種類が 4 つに増えている。
MSDN にまとめた記事が無いので(たぶん)、自分用まとめ

書式 バックスラッシュ
エスケープ
改行 補間式 その他の
エスケープ
標準 "regular"
逐語的 @"verbatim
string"

"" → "

補間 $"1+1={1+1}"

{{ → {

}} → }

補間
逐語的
$@"interpolated
{"and"}
verbatim"

"" → "

{{ → {

}} → }


また、補間文字列の補間式の中に各種文字列リテラルを書くことが可能。
つまり、補間文字列のネストも可能。(実用性は無さそうだけど)
ただし、改行を許可しない補間文字列の中に、逐語的文字列や補間逐語的文字列を書いても改行を含めることはできない。(コンパイルエラー)

// 逐語的(改行無し) in 補間 : OK
var nested1 = $"this is {@"verbatim string"}";

// 逐語的(改行有り) in 補間逐語的 : OK
var nested2 = $@"this is {@"verbatim
string"}";


// 逐語的(改行有り) in 補間 : ERROR
var nested_error = $"this is {@"verbatim
string"}";

参考URL

0 件のコメント:

コメントを投稿