Condividi tramite


Testo letterale stringa non elaborato- """ in valori letterali stringa

Un valore letterale stringa non elaborato inizia e termina con un minimo di tre caratteri virgolette doppie ("):

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

I valori letterali stringa non elaborati possono estendersi su più righe:

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

Le regole seguenti regolano l'interpretazione di un valore letterale stringa non elaborata su più righe:

  • Le virgolette di apertura devono essere l'ultimo token non di commento nella rispettiva riga e la virgoletta di chiusura deve essere il primo token non commento sulla rispettiva riga.
  • Qualsiasi spazio vuoto a sinistra delle virgolette di chiusura viene rimosso da tutte le righe del valore letterale stringa non elaborato.
  • Gli spazi vuoti che seguono le virgolette di apertura sulla stessa riga vengono ignorati.
  • Nel valore letterale stringa sono incluse solo righe che seguono le virgolette di apertura.
  • Se uno spazio vuoto precede il delimitatore finale sulla stessa riga, il numero esatto e il tipo di spazi vuoti (ad esempio spazi e tabulazioni) devono esistere all'inizio di ogni riga di contenuto. In particolare, uno spazio non corrisponde a una scheda orizzontale e viceversa.
  • La nuova riga prima delle virgolette di chiusura non è inclusa nella stringa letterale.

Potrebbe essere necessario creare un valore letterale stringa non elaborato con tre o più caratteri virgolette doppie consecutive. I valori letterali stringa non elaborati possono iniziare e terminare con una sequenza di almeno tre caratteri tra virgolette doppie. Quando il valore letterale stringa contiene tre virgolette doppie consecutive, si inizia e termina il valore letterale stringa non elaborato con quattro caratteri virgolette doppie:

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

Se è necessario iniziare o terminare un valore letterale stringa non elaborato con caratteri virgolette, usare il formato a più righe:

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

I valori letterali stringa non elaborati possono essere combinati anche con stringhe interpolate per incorporare i caratteri { e } nella stringa di output. Si usano più caratteri $ in un valore letterale stringa non elaborata interpolata per incorporare i caratteri { e } nella stringa di output senza eseguirne l'escape.

Il contenuto del valore letterale stringa non elaborato non deve contenere un set di caratteri " contigui la cui lunghezza è uguale o maggiore della lunghezza del delimitatore letterale stringa non elaborata. Ad esempio, le stringhe """" """ """" e """"""" """""" """"" """" """ """"""" sono ben formate. Tuttavia, le stringhe """ """ """ e """ """" """ sono in formato non corretto

I valori letterali stringa non elaborati sono stati introdotti in C# 11.

Vedi anche