Строковая интерполяция: ошибка в компиляторе C#?

string Test(bool @bool) => $"you're {@bool?"hired":"fired"} Have a nice day!";

Приведенный выше код приводит к ошибке компиляции. Но почему? Заметить, что string test = $"this {"is"} working";работает.

3 ответа

Решение

Двоеточие заканчивает интерполяцию. Просто заключите условие в скобки:

string Test(bool @bool) => $"you're {(@bool ? "hired":"fired")} Have a nice day!";

Для этого вопроса вы не можете использовать ?,: что-то вроде этого, для их использования вы должны установить именно ваше условие должно быть в () лайк:

string Test(bool @bool) => $"you're {(@bool ? "hired":"fired")} Have a nice day!";

Вы можете попробовать использовать () содержать ваш ?: оператор

string Test(bool @bool) => $"you're {(@bool ? "hired":"fired")} Have a nice day!";

$ - строковая интерполяция

Другие вопросы по тегам