Поделиться через


Необработанный текст строкового литерала — """ в строковых литералах

Необработанный строковый литерал начинается и заканчивается как минимум тремя двойными кавычками (") символами:

var singleLine = """This is a "raw string literal". It can contain characters like \, ' and ".""";

Необработанные строковые литералы могут охватывать несколько строк:

var xml = """
        <element attr="content">
            <body>
            </body>
        </element>
        """;

Следующие правила управляют интерпретацией многострочный необработанный строковый литерал:

  • Открываемые кавычки должны быть последним маркером без комментариев в соответствующей строке, а закрывающая цитата должна быть первым маркером без комментариев в соответствующей строке.
  • Любое пробелы слева от закрывающих кавычки удаляются из всех строк необработанного строкового литерала.
  • Пробелы после открывающей кавычки в той же строке игнорируются.
  • Пробелы включаются в строковый литерал только после открывающей кавычки.
  • Если пробел предшествует конечному разделителю в одной строке, то точное число и тип символов пробелов (например, пробелов и вкладок) должно существовать в начале каждой строки содержимого. В частности, пространство не соответствует горизонтальной вкладке и наоборот.
  • Новая строка перед закрывающей кавычками не включается в литеральную строку.

Может потребоваться создать необработанный строковый литерал с тремя или более последовательными символами двойного кавычки. Необработанные строковые литералы могут начинаться и заканчиваться по крайней мере тремя символами двойной кавычки. Если строковый литерал содержит три последовательные двойные кавычки, вы начинаете и заканчиваете необработанный строковый литерал с четырьмя двойными кавычками:

var moreQuotes = """" As you can see,"""Raw string literals""" can start and end with more than three double-quotes when needed."""";

Если необходимо запустить или завершить необработанный строковый литерал с символами кавычки, используйте многострочный формат:

var MultiLineQuotes = """"
               """Raw string literals""" can start and end with more than three double-quotes when needed.
               """";

Необработанные строковые литералы также можно объединить с } в выходную строку. Вы используете несколько $ символов в интерполированном строковом литерале для внедрения { и } символов в выходную строку без их экранирования.

Содержимое необработанного " строкового литерала не должно содержать набор смежных символов, длина которого равна или больше длины необработанного литерального разделителя строк. Например, строки и """" """ """" хорошо сформированы""""""" """""" """"" """" """ """"""". Однако строки """ """ """ и """ """" """ не сформированы

Необработанные строковые литералы появились в C# 11.

См. также