web-dev-qa-db-ja.com

新しいC#6文字列構文内の引用符のエスケープ

新しい文字列構文など、C#6の新機能に本当に興奮しています。

var fullName = $"My Name is {FirstName} {LastName}";

ただし、中かっこ内の引用符をエスケープして次のようにする方法はわかりません。

bool includePrefix = true;

var fullName = $"My name is {includePrefix ? "Mr. " : ""}{FirstName} {LastName}";

C#6はそれを好みません。その2番目のケースでは、String.Formatの使用に戻る必要がありました。新しい構文を使用して引用符をエスケープすることは可能ですか?

更新:はい、\エスケープを使用しようとしましたが、認識されません。

46
Nathan A

括弧でロジックをラップしますinside括弧:

var fullName = $"My name is {(includePrefix ? "Mr. " : "")}{FirstName} {LastName}";
76
Jonesopolis

引用符を定期的にエスケープするには、スラッシュを使用する必要があります(つまり、\")。

ただし、ここでは問題になりません。エスケープする必要がないため、式の括弧が欠落しているだけです。

これは動作します:

bool includePrefix = true;
var fullName = $"My name is {(includePrefix ? "Mr. " : "")}{FirstName} {LastName}";
19
i3arnon