C#相当于javascript的toSource()

本文关键字:toSource 相当于 javascript | 更新日期: 2023-09-27 18:10:16

可能重复:
我可以将C#字符串值转换为转义字符串文字吗

如何在"纯模式"中显示字符串的内容,包括'r'n't等。。相当于javascript 的.toSource()方法

例如:

JavaScript:

var str = "foo'nbaa'ttest"; 
console.log(str.toSource());

输出:

(new String("foo'nbaa'ttest"))

在C#中可以做到这一点吗?提前感谢!

C#相当于javascript的toSource()

请参阅Can I convert a C#string value to a escaped string literal的答案。他写了这个扩展方法,它正是你想要的:

static string ToLiteral(string input)
{
    var writer = new StringWriter();
    CSharpCodeProvider provider = new CSharpCodeProvider();
    provider.GenerateCodeFromExpression(new CodePrimitiveExpression(input), writer, null);
    return writer.GetStringBuilder().ToString();
}
Regex.Escape("foo'nbaa'ttest")

考虑一下一般问题-重建一些源代码-C#上没有任何语言选项可以让你自动完成。

然而(这是我的理论(,您应该能够使用表达式来获得IL等价物(可能使用Reflection.Emit或Mono.Cecil库(。我怀疑你可以使用ILSpy项目中的库来重建C#。