逐語的な文字列を使用するつもりでしたが、$
の代わりに と誤って入力しました@
。
しかし、コンパイラはエラーを出さず、正常にコンパイルしました。
それが何なのか、何をするのかを知りたいです。検索しましたが、何も見つかりませんでした。
ただし、次のように記述できないため、逐語的な文字列とは異なります。
string str = $"text\";
$
C# では文字列の前の文字は何を意味しますか?
string str = $"text";
Visual Studio 2015 CTP を使用しています。
ベストアンサー1
$
は の省略形でありString.Format
、C# 6 の新機能である文字列補間で使用されます。あなたのケースで使用されているように、何も行わstring.Format()
れません。
これは、他の値を参照して文字列を構築するときに役立ちます。以前は次のように記述する必要がありました。
var anInt = 1;
var aBool = true;
var aString = "3";
var formated = string.Format("{0},{1},{2}", anInt, aBool, aString);
次のように変わります:
var anInt = 1;
var aBool = true;
var aString = "3";
var formated = $"{anInt},{aBool},{aString}";
あまり知られていないが、 を使用した文字列補間の別の形式もあります(2 つの記号の順序が重要です)。これにより、文字列全体でを必要とせずに、文字列$@
の機能@""
を と混合して文字列補間をサポートできます。つまり、次の 2 行です。$""
\\
var someDir = "a";
Console.WriteLine($@"c:\{someDir}\b\c");
出力は次のようになります:
c:\a\b\c