Есть ли запись heredoc для строк в С#, предпочтительно одна, где мне не нужно ничего скрывать (включая двойные кавычки, которые являются причудой в стенографических строках)?
Цепочки Heredoc в С#
Ответ 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 должны быть экранированы удвоением
Ссылки
- csharpindepth.com - Общие статьи - Строки
- MSDN - Справочник программиста на С# - Строки
Строковые литералы имеют тип
string
и могут быть записаны в двух формах, цитируемых и@
-quoted.