Konvertieren Sie den String-Wert in ein String-Literal mit Escape-Sequenz in C#
In C# können Sie einen String-Wert mithilfe der folgenden Technik in ein String-Literal mit Escape-Sequenzen konvertieren:
Originalcode:
<code class="language-csharp">Console.WriteLine(someString);</code>
Erwartete Ausgabe:
<code>\tHello\r\n\tWorld!\r\n</code>
Methode 1: Verwenden Sie C# StringWriter und CodeDomProvider
<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>
Beispiel:
<code class="language-csharp">var input = "\tHello\r\n\tWorld!"; Console.WriteLine(input); Console.WriteLine(ToLiteral(input));</code>
Ausgabe:
<code> Hello World! "\tHello\r\n\tWorld!"</code>
Methode 2: Verwenden Sie Roslyns Microsoft.CodeAnalysis.CSharp-Paket
<code class="language-csharp">private static string ToLiteral(string valueTextForCompiler) { return Microsoft.CodeAnalysis.CSharp.SymbolDisplay.FormatLiteral(valueTextForCompiler, false); }</code>
Beispiel:
<code class="language-csharp">Console.WriteLine(ToLiteral("\tHello\r\n\tWorld!"));</code>
Ausgabe:
<code>"\tHello\r\n\tWorld!"</code>
Das obige ist der detaillierte Inhalt vonWie entkomme ich String-Literale in C#?. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!