1. ホーム
  2. c#

[解決済み】文字列の前の$の意味は何ですか?

2022-04-01 08:41:01

質問

逐語的な文字列を使おうと思ったのですが、間違えて $ ではなく @ .

しかし、コンパイラは何のエラーも出さず、正常にコンパイルできました。

それが何なのか、何をするものなのかを知りたいのです。検索してみましたが、何も見つかりませんでした。

しかし、書けないので逐語的な文字列のようなものではありません。

string str = $"text\";

をご存知の方はいらっしゃいますか? $ の前にある文字列はC#の略です。

string str = $"text";

Visual studio 2015 CTPを使用しています。

解決方法を教えてください。

$ の略称です。 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