Scrierea șirurilor complexe de text care conțin ghilimele, acolade sau caractere speciale (JSON, interogări SQL, expresii regulate, HTML) a fost istoric una dintre cele mai neplăcute surse de erori în C#: era nevoie de dublarea ghilimelelor ("") sau de secvențe obositoare de escape (\").
Raw String Literals (introduse în C# 11) elimină complet această problemă: orice șir delimitat de cel puțin trei ghilimele consecutive (""") tratează conținutul exact așa cum este scris, fără a interpreta niciun caracter de escape.
// 1. Text multi-linie curat: ghilimelele interioare NU necesită escape!
string payloadJson = """
{
"nume": "Dexter",
"site": "https://www.dexblog.ro",
"activ": true
}
""";
// 2. Interpolare când șirul conține acolade naturale (JSON / Regex):
// Prefixul cu doi dolari ($$) indică faptul că DOAR acoladele duble {{...}} sunt variabile interpolate!
int utilizatorId = 1042;
string rol = "Administrator";
string jsonDinamic = $$"""
{
"id": {{utilizatorId}},
"rol": "{{rol}}",
"nota": "Acoladele simple { } sunt tratate ca text JSON normal!"
}
""";
Console.WriteLine(jsonDinamic);
Validare în IDE cu Atributul [StringSyntax]
Decorarea parametrilor de tip string cu atributul [StringSyntax] oferă asistență de nivel superior în Visual Studio și VS Code (colorare de sintaxă internă, completare automată IntelliSense și validare a erorilor de sintaxă direct în codul sursă):
using System.Diagnostics.CodeAnalysis;
public void ExecutaInterogare([StringSyntax(StringSyntaxAttribute.Sql)] string sql)
{
// Editorul va colora sintaxa SQL ca și cum ați fi într-un fișier .sql nativ!
}