Maison > développement back-end > C++ > Comment échapper aux chaînes pour les littéraux de chaîne C# ?

Comment échapper aux chaînes pour les littéraux de chaîne C# ?

Mary-Kate Olsen
Libérer: 2025-01-28 00:51:09
original
270 Les gens l'ont consulté

Guide d'échappement littéral de chaîne C#

How to Escape Strings for C# String Literals?

En C#, les chaînes littérales sont représentées par des guillemets doubles. Des séquences d'échappement (par exemple, t pour tabulation, n pour nouvelle ligne) peuvent être utilisées dans ces littéraux pour représenter des caractères spéciaux.

Pour convertir une chaîne normale en sa représentation littérale de chaîne d'échappement, vous pouvez envisager la méthode suivante :

Utiliser la génération de code

Grâce à la technologie de génération de code, vous pouvez utiliser CodeDomProvider pour générer les littéraux de chaîne requis :

private static string ToLiteral(string input)
{
    using (var writer = new StringWriter())
    {
        using (var provider = CodeDomProvider.CreateProvider("CSharp"))
        {
            provider.GenerateCodeFromExpression(new CodePrimitiveExpression(input), writer, null);
            return writer.ToString();
        }
    }
}
Copier après la connexion

Cette méthode crée une représentation sous forme de chaîne littérale en suivant ces étapes :

  • Créez un StringWriter pour capturer le code généré.
  • Utilisez un CodeDomProvider pour générer du code à partir d'une expression primitive représentant la chaîne d'entrée.
  • Extrayez le code généré du StringWriter.

Utilisation du SymbolDisplay de Roslyn

Une approche plus récente consiste à utiliser le package Microsoft.CodeAnalysis.CSharp NuGet de Roslyn :

private static string ToLiteral(string valueTextForCompiler)
{
    return Microsoft.CodeAnalysis.CSharp.SymbolDisplay.FormatLiteral(valueTextForCompiler, false);
}
Copier après la connexion

Cette méthode simplifie le processus en utilisant SymbolDisplay de Roslyn pour générer une représentation littérale de chaîne d'échappement.

Ce qui précède est le contenu détaillé de. pour plus d'informations, suivez d'autres articles connexes sur le site Web de PHP en chinois!

Déclaration de ce site Web
Le contenu de cet article est volontairement contribué par les internautes et les droits d'auteur appartiennent à l'auteur original. Ce site n'assume aucune responsabilité légale correspondante. Si vous trouvez un contenu suspecté de plagiat ou de contrefaçon, veuillez contacter admin@php.cn
Derniers articles par auteur
Tutoriels populaires
Plus>
Derniers téléchargements
Plus>
effets Web
Code source du site Web
Matériel du site Web
Modèle frontal