Интерполяция в середине строки - PullRequest
0 голосов
/ 13 февраля 2019

Я хочу интерполировать в середине строки, но не могу использовать String.Format, потому что строка содержит {} фигурные скобки.

Это то, что я пробовал до сих пор:

string code = "(function(){var myvariable = $"{variableToBeInterpolated}"});"

Возвращает:) ожидается;ожидается

Редактировать: Я попробовал следующий фрагмент, теперь работает интерполяция, но код не выполняется в браузере.

"(function(){var myvariable=" + $"{myvariable c#}" + ")});"

Ответы [ 3 ]

0 голосов
/ 13 февраля 2019

Вы пробовали:

string someVariable = "test";

string code = $"(function()'{{var myvariable = ({someVariable} in c#)}});"

Использование $ в C # - это интерполяция строк.Добавлено в C # 6

docs.microsoft.com

0 голосов
/ 13 февраля 2019

Общая информация

В C # версии 6 к языку добавлены расширенные возможности интерполяции строк .

Интерполяция строк обеспечивает более удобочитаемую и удобнуюсинтаксис для создания форматированных строк, чем функция составного форматирования строк .

Чтобы решить вашу проблему, ознакомьтесь с разделом специальные символы документации, который гласит следующее:

Чтобы включить скобку "{" или "}" в текст, полученный с помощью интерполированной строки, используйте две скобки: "{{" или "}}".


Пример

var variable = 10;
var code = $"(function() {{ var myVariable = {variable} }});";
Console.WriteLine(code);

Выход: (function() { var myVariable = 10 });

0 голосов
/ 13 февраля 2019

Почему вы хотите интерполировать посередине, скорее поставьте $ впереди.А для { нужно использовать {{.(то же самое относится к })

string code = $"(function(){{ var myvariable = {myvariable} }});";
...