C# 中將字符串值轉換為帶轉義序列的字符串字面量
在 C# 中,可以使用以下技術將字符串值轉換為帶有轉義序列的字符串字面量:
原始代碼:
<code class="language-csharp">Console.WriteLine(someString);</code>
期望輸出:
<code>\tHello\r\n\tWorld!\r\n</code>
方法一:使用 C# StringWriter 和 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>
示例:
<code class="language-csharp">var input = "\tHello\r\n\tWorld!"; Console.WriteLine(input); Console.WriteLine(ToLiteral(input));</code>
輸出:
<code> Hello World! "\tHello\r\n\tWorld!"</code>
方法二:使用 Roslyn 的 Microsoft.CodeAnalysis.CSharp 包
<code class="language-csharp">private static string ToLiteral(string valueTextForCompiler) { return Microsoft.CodeAnalysis.CSharp.SymbolDisplay.FormatLiteral(valueTextForCompiler, false); }</code>
示例:
<code class="language-csharp">Console.WriteLine(ToLiteral("\tHello\r\n\tWorld!"));</code>
輸出:
<code>"\tHello\r\n\tWorld!"</code>
以上是如何在 C# 中轉義字串文字?的詳細內容。更多資訊請關注PHP中文網其他相關文章!