Rumah >pembangunan bahagian belakang >C++ >Bagaimana untuk Melarikan Diri Strings untuk C# String Literals?

Bagaimana untuk Melarikan Diri Strings untuk C# String Literals?

Mary-Kate Olsen
Mary-Kate Olsenasal
2025-01-28 00:51:09272semak imbas

Panduan Melarikan Diri Rentetan C#

How to Escape Strings for C# String Literals?

Dalam C#, literal rentetan diwakili oleh petikan berganda. Urutan melarikan diri (contohnya, t untuk tab, n untuk baris baharu) boleh digunakan dalam literal ini untuk mewakili aksara khas.

Untuk menukar rentetan biasa kepada perwakilan literal rentetan yang terlepas, anda boleh mempertimbangkan kaedah berikut:

Gunakan penjanaan kod

Menggunakan teknologi penjanaan kod, anda boleh menggunakan CodeDomProvider untuk menjana literal rentetan yang diperlukan:

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

Kaedah ini mencipta perwakilan rentetan literal dengan mengikut langkah berikut:

  • Buat StringWriter untuk menangkap kod yang dijana.
  • Gunakan CodeDomProvider untuk menjana kod daripada ungkapan primitif yang mewakili rentetan input.
  • Ekstrak kod yang dijana daripada StringWriter.

Menggunakan Paparan Simbol Roslyn

Pendekatan yang lebih baharu ialah menggunakan pakej Microsoft.CodeAnalysis.CSharp NuGet Roslyn:

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

Kaedah ini memudahkan proses dengan menggunakan Roslyn's SymbolDisplay untuk menjana perwakilan literal rentetan yang terlepas.

Atas ialah kandungan terperinci Bagaimana untuk Melarikan Diri Strings untuk C# String Literals?. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!

Kenyataan:
Kandungan artikel ini disumbangkan secara sukarela oleh netizen, dan hak cipta adalah milik pengarang asal. Laman web ini tidak memikul tanggungjawab undang-undang yang sepadan. Jika anda menemui sebarang kandungan yang disyaki plagiarisme atau pelanggaran, sila hubungi admin@php.cn