Heim > Backend-Entwicklung > C++ > Wie entkomme ich Strings für C#-String-Literale?

Wie entkomme ich Strings für C#-String-Literale?

Mary-Kate Olsen
Freigeben: 2025-01-28 00:51:09
Original
217 Leute haben es durchsucht

C# String Literal Escape Guide

How to Escape Strings for C# String Literals?

In C# werden Zeichenfolgenliterale durch doppelte Anführungszeichen dargestellt. Escape-Sequenzen (z. B. t für Tab, n für Newline) können in diesen Literalen verwendet werden, um Sonderzeichen darzustellen.

Um eine normale Zeichenfolge in ihre maskierte Zeichenfolgenliteraldarstellung umzuwandeln, können Sie die folgende Methode in Betracht ziehen:

Codegenerierung verwenden

Mithilfe der Codegenerierungstechnologie können Sie CodeDomProvider verwenden, um die erforderlichen Zeichenfolgenliterale zu generieren:

<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>
Nach dem Login kopieren

Diese Methode erstellt eine literale Zeichenfolgendarstellung, indem sie die folgenden Schritte ausführt:

  • Erstellen Sie einen StringWriter, um den generierten Code zu erfassen.
  • Verwenden Sie einen CodeDomProvider, um Code aus einem primitiven Ausdruck zu generieren, der die Eingabezeichenfolge darstellt.
  • Extrahieren Sie den generierten Code aus dem StringWriter.

Verwendung von Roslyns SymbolDisplay

Ein neuerer Ansatz ist die Verwendung des NuGet-Pakets Microsoft.CodeAnalysis.CSharp von Roslyn:

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

Diese Methode vereinfacht den Prozess, indem sie Roslyns SymbolDisplay verwendet, um eine maskierte Zeichenfolgenliteraldarstellung zu generieren.

Das obige ist der detaillierte Inhalt vonWie entkomme ich Strings für C#-String-Literale?. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!

Quelle:php.cn
Erklärung dieser Website
Der Inhalt dieses Artikels wird freiwillig von Internetnutzern beigesteuert und das Urheberrecht liegt beim ursprünglichen Autor. Diese Website übernimmt keine entsprechende rechtliche Verantwortung. Wenn Sie Inhalte finden, bei denen der Verdacht eines Plagiats oder einer Rechtsverletzung besteht, wenden Sie sich bitte an admin@php.cn
Neueste Artikel des Autors
Beliebte Tutorials
Mehr>
Neueste Downloads
Mehr>
Web-Effekte
Quellcode der Website
Website-Materialien
Frontend-Vorlage