in C#, Informatica, Programmazione

Raw string literals in C#

Introdotti nella versione C# 11, i raw string literals sono utili per immettere qualsiasi testo all’interno di varibili, mantendone la formattazione originaria. In particolare consentono di semplificare la definizione di valori letterali provenienti da altri linguaggi come XML, HTML o JSON.

I raw string literals iniziano e terminano con tre o più caratteri tra virgolette doppie:

string xml = """
                  <person age="50">
                      <first_name>Mark</first_name>
                  </person> 
""";

Questo tipo di definizione tiene conto della dell’identazione della stringa che viene mantenuta. Consentono di includere spazi, caratteri di a capo, e altri tipi di caratteri che non necessino in questo modo di caratteri/sequenze di escape.

Vediamo come funzionano:

  • una raw string literals inizia con tre o più virgolette doppie (“””). Dipende dal programmatore quanti caratteri tra virgolette utilizzare per racchiudere l’intero testo
  • termina con lo stesso numero di virgolette doppie che sono state utilizzate all’inizio
  • i raw string literals multilinea richiedono che le sequenze di apertura e chiusura siano posizionate su righe separate. I ritorni a capo che seguono la virgoletta di apertura e che precedono la virgoletta di chiusura non sono inclusi nel contenuto finale.
  • qualsiasi spazio a sinistra delle virgolette doppie di chiusura verrà rimosso dalla stringa letterale (da tutte le righe.
  • le righe devono iniziare con la stessa quantità di spazi bianchi (o più) della sequenza di chiusura
  • nei raw string literals su più righe, lo spazio che segue la sequenza di apertura, sulla stessa riga, viene ignorato

Supponiamo di avere :

string rawString = """
    Lorem ipsum "dolor" sit amet,
        consectetur adipiscing elit.
""";

Il corrispondente testo sarà :

Lorem ipsum "dolor" sit amet,
        consectetur adipiscing elit.