Подтвердить что ты не робот

Сброс котировок внутри нового синтаксиса строк С# 6

Я очень рад новым функциям в С# 6, включая новый синтаксис строки:

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

Однако я не могу понять, как избежать котировок внутри фигурных скобок, чтобы выполнить следующее:

bool includePrefix = true;

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

С# 6 это не нравится. Мне пришлось вернуться к использованию String.Format во втором случае. Можно ли избежать кавычек с использованием нового синтаксиса?

Обновление: Да, я попытался использовать \ escape, но он не распознается.

4b9b3361

Ответ 1

оберните свою логику в круглые скобки, внутри скобок:

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

Ответ 2

Чтобы избежать кавычек, вам нужно использовать косую черту (т.е. \").

Однако это не проблема здесь, так как вам не нужно бежать, вы просто пропускаете круглые скобки над выражением.

Это работает:

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