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

Как вы используете стенографические строки с интерполяцией?

В С# 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();

Как использовать как дословные, так и интерполированные строки вместе?

4b9b3361

Ответ 1

Вы можете применить префиксы $ и @ к одной строке:

string s = [email protected]"Result...
Adding ""{x}"" and {this.Y()} to foobar:
{x.GetLog()}";

Поскольку был введен в С# 6, интерполированные дословные строки должны были начинаться с токенов [email protected], , но начиная с С# 8, вы можете использовать либо [email protected], либо @$.