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

Цепочки Heredoc в С#

Есть ли запись heredoc для строк в С#, предпочтительно одна, где мне не нужно ничего скрывать (включая двойные кавычки, которые являются причудой в стенографических строках)?

4b9b3361

Ответ 1

Как говорили другие, нет.

Лично я бы избегал создавать их в первую очередь, хотя - вместо этого я использовал бы встроенный ресурс. С ними довольно легко работать, и если у вас есть метод утилиты для загрузки именованного внедренного ресурса из вызывающей сборки в виде строки (вероятно, предполагая кодировку UTF-8), это означает, что:

  • Если ваш внедренный документ похож на SQL, XSLT, HTML и т.д., вы получите подсветку синтаксиса, потому что это действительно будет файл SQL (и т.д.)
  • Вам не нужно беспокоиться о каких-либо побегах
  • Вам не нужно беспокоиться о том, чтобы отпечатать ваш документ или сделать ваш код на С# уродливым.
  • Вы можете использовать файл "обычным" способом, если это необходимо (например, просмотреть его как HTML-страницу).
  • Ваши данные отделены от вашего кода.

Ответ 2

Ну, даже если он не поддерживает HEREDOC, вы все равно можете делать такие вещи, как следующие строки Verbatim:

string miniTemplate = @"

  Hello ""{0}"",

  Your friend {1} sent you this message:

     {2}

  That all!";

string populatedTemplate = String.Format(miniTemplate, "Fred", "Jack", "HelloWorld!");

System.Console.WriteLine(populatedTemplate);

Зацепило: http://blog.luckyus.net/2009/02/03/heredoc-in-c-sharp/

Ответ 3

Нет, в С# нет строкового литерала стиля HEREDOC.

С# имеет только два типа строковых литералов:

  • Регулярный литерал, требующий много escape-последовательностей
  • Verbatim literal, @ -quoted: doublequotes должны быть экранированы удвоением

Ссылки