Compartilhar via


Texto do literal de cadeia de caracteres bruta: """ em literais de cadeia de caracteres

Um literal de cadeia de caracteres começa e termina com, no mínimo, três caracteres de aspas duplas ("):

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

Literais de cadeia de caracteres bruta podem abranger várias linhas:

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

As seguintes regras regem a interpretação de um literal de cadeia de caracteres bruta de várias linhas:

  • As aspas de abertura devem ser os últimos caracteres que não são de espaço em branco em sua linha e as aspas de fechamento devem ser os primeiros caracteres que não são de espaço em branco em sua linha.
  • Espaços em branco à esquerda das aspas de fechamento são removidos de todas as linhas do literal de cadeia de caracteres bruta.
  • Qualquer espaço em branco após as aspas de abertura na mesma linha é ignorado.
  • Linhas somente de espaço em branco após as aspas de abertura são incluídas no literal de cadeia de caracteres.
  • Se um espaço em branco precede o delimitador final na mesma linha, o número exato e o tipo de caracteres de espaço em branco (por exemplo, espaços versus guias) devem existir no início de cada linha de conteúdo. Especificamente, um espaço não corresponde a uma guia horizontal e vice-versa.
  • A nova linha antes das aspas de fechamento não está incluída na cadeia de caracteres literal.

Dica

O Visual Studio e o Kit de Desenvolvimento em C# fornecem algum realce de validação e sintaxe quando literais de cadeia de caracteres brutos contêm dados JSON ou expressões regulares.

As ferramentas analisam o texto. Se as ferramentas tiverem confiança de que o texto representa JSON ou uma expressão regular, o editor fornecerá coloração de sintaxe.

Você pode melhorar essa experiência adicionando um comentário acima da declaração que indica o formato:

  • // lang=json indica que o literal de cadeia de caracteres bruto representa dados JSON.
  • // lang=regex indica que o literal de cadeia de caracteres bruto representa uma expressão regular.

Quando um literal de cadeia de caracteres bruto é usado como um argumento em que o parâmetro usa o System.Diagnostics.CodeAnalysis.StringSyntaxAttribute para indicar um formato, essas ferramentas validam o literal de cadeia de caracteres bruto para alguns dos tipos de formato. Há suporte para JSON e regex.

Para alguns formatos, o comentário ou o atributo permite que as sugestões de código ofereçam correções para literais de cadeia de caracteres com base no formato.

Talvez seja necessário criar um literal de cadeia de caracteres bruto que tenha três ou mais caracteres de aspas duplas consecutivos. Literais de cadeia de caracteres bruta podem começar e terminar com uma sequência de pelo menos três caracteres de aspas duplas. Quando o literal de cadeia de caracteres contiver três aspas duplas consecutivas, você começará e terminará o literal de cadeia de caracteres bruta com quatro caracteres de aspas duplas:

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

Se você precisar iniciar ou terminar um literal de cadeia de caracteres bruta com caracteres de aspas, use o formato de várias linhas:

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

Os literais de cadeia de caracteres brutos também podem ser combinados com a interpolação da cadeia de caracteres para incorporar os caracteres { e } na cadeia de caracteres de saída. Use vários caracteres $ em um literal de cadeia de caracteres bruto interpolado, para inserir os caracteres { e } na cadeia de caracteres de saída, sem escapar deles.

O conteúdo do literal da cadeia de caracteres bruta não deve conter um conjunto de caracteres " contíguos, cujo comprimento é igual ou maior que o comprimento do delimitador literal da cadeia de caracteres bruta. Por exemplo, as cadeias de caracteres """" """ """" e """"""" """""" """"" """" """ """"""" estão bem formadas. No entanto, as cadeias de caracteres """ """ """ e """ """" """ estão mal formadas

Confira também