在 C# 中,字符串字面量用双引号括起来表示。 这些字面量中可以使用转义序列(例如,t 表示制表符,n 表示换行符)来表示特殊字符。
将普通字符串转换为其转义的字符串字面量表示形式,您可以考虑以下方法:
利用代码生成技术,您可以使用 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>
此方法遵循以下步骤创建字面量字符串表示形式:
一种更新的方法是使用 Roslyn 的 Microsoft.CodeAnalysis.CSharp NuGet 包:
<code class="language-csharp">private static string ToLiteral(string valueTextForCompiler) { return Microsoft.CodeAnalysis.CSharp.SymbolDisplay.FormatLiteral(valueTextForCompiler, false); }</code>
此方法通过使用 Roslyn 的 SymbolDisplay 来生成转义的字符串字面量表示形式,简化了流程。
以上是如何逃避C#字符串文字的字符串?的详细内容。更多信息请关注PHP中文网其他相关文章!