在C#中,是否可以将字符串值转换为字符串文字,就像在代码中看到字符串一样?我想将制表符,换行符等替换为其转义序列。
如果此代码:
Console.WriteLine(someString);
产生:
Hello World!
我想要这段代码:
Console.WriteLine(ToLiteral(someString));
生产:
\tHello\r\n\tWorld!\r\n
我找到了这个:
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(); } } }
这段代码:
var input = "\tHello\r\n\tWorld!"; Console.WriteLine(input); Console.WriteLine(ToLiteral(input));
Hello World! "\tHello\r\n\tWorld!"