最も長いのはどれ? §
サンプルソースには3つの文字列定数が書き込まれている。
それぞれ変数s1からs3に代入されている。
この中で表示して最も長い文字列になるのはどれ?
罠の数々 §
- ポイントは【円記号(バックスラッシュ)が特別な意味を発揮するのはどの記法か】と【波括弧内の数式を計算してしまうのはどの記法か】だ!
参考リンク §
文字列 (C# プログラミング ガイド)
上記のリンクを踏んで、【標準リテラル文字列と逐語的リテラル文字列】と【文字列補間】を比較して見よう。そして、なぜ【文字列補間】だけ別になっているのか理由を考えてみよう。
リポジトリ §
https://github.com/autumn009/cshowto
StringConstant §
using System;
class Program
{
static void Main()
{
var s1 = "\\{1 + 2}";
var s2 = @"\\{1 + 2}";
var s3 = $"\\{1 + 2}";
Console.WriteLine(s1);
Console.WriteLine(s2);
Console.WriteLine(s3);
}
}
実行結果
\{1 + 2}
\\{1 + 2}
\3
(つまり、答は2番目)