web-dev-qa-db-ja.com

補間で逐語的文字列をどのように使用しますか?

C#6には、補間文字列という新しい機能があります。

これらにより、インデックスに依存するのではなく、コードに式を直接挿入できます。

string s = string.Format("Adding \"{0}\" and {1} to foobar.", x, this.Y());

になる:

string s = $"Adding \"{x}\" and {this.Y()} to foobar.";

ただし、次のような逐語的な文字列(主にSQLステートメント)を使用して、複数の行にわたって多くの文字列があります。

string s = string.Format(@"Result...
Adding ""{0}"" and {1} to foobar:
{2}", x, this.Y(), x.GetLog());

これらを通常の文字列に戻すのは面倒です:

string s = "Result...\r\n" +
$"Adding \"{x}\" and {this.Y()} to foobar:\r\n" +
x.GetLog().ToString();

逐語的文字列と補間文字列の両方を一緒に使用するにはどうすればよいですか?

116
Keith

両方を適用できます$および@は同じ文字列の接頭辞です:

string s = $@"Result...
Adding ""{x}"" and {this.Y()} to foobar:
{x.GetLog()}";
165
Keith