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
Mary-Kate Olsenoriginal
2025-01-28 00:51:09272parcourir

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 :

<code class="language-csharp">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();
        }
    }
}</code>

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 :

<code class="language-csharp">private static string ToLiteral(string valueTextForCompiler)
{
    return Microsoft.CodeAnalysis.CSharp.SymbolDisplay.FormatLiteral(valueTextForCompiler, false);
}</code>

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:
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