如何防止C#转义我的字符串?

Gie*_*ius 3 c# escaping

我有Windows窗体UI,允许我在TextBox中输入字符串格式的格式,如:

输入结果格式: {sku}:{value} \n

问题是,\n正在转义,因此调试视图中的结果格式字符串如下所示:

{sku}:{value} \\n
Run Code Online (Sandbox Code Playgroud)

这会产生\n而不是换行中的换行符.

所以问题是,如何防止这种情况,或者如何在使用之前删除转义 StringBuilder.AppendFormat()

更新:我已经决定从notepad ++窗口添加图片,可能会有助于理解我需要什么以及为什么(尽管我的用例有点不同,我认为想法是一样的): 在此输入图像描述

ekh*_*olm 8

也许你想要做的是使用string.Replace(@"\n","\n")方法.在http://msdn.microsoft.com/en-us/library/system.string.replace.aspx上查看更多信息

  • @Giedrus不能真正实现(除非您做一些讨厌的事情,例如调用C#编译器从输入中编译字符串文字,然后将其取回),因为您正在有效地创建自己的语言,因此必须对其进行解析和翻译。我们知道和喜欢的转义序列与C#相关,而不与.Net相关。 (2认同)
  • 好吧,没有很多,请参阅[此链接](http://social.msdn.microsoft.com/Forums/en-US/csharpgeneral/thread/cf2e3220-dc8d-4de7-96d3-44dd93a52423),因此,用一种方法检查所有对象是一件容易的事 (2认同)
  • 我完全同意; 是的,一个简单的解决方案是可以实现的-我只是回应@Giedrius的一种信念,即转义序列以某种方式嵌入到框架中,而事实并非如此。一个简单的符号和替换图将在此处完美运行。 (2认同)

Tim*_*Tim 5

对字符串进行转义的一般方法是使用正则表达式

System.Text.RegularExpressions.Regex.Unescape(yourStringVariable);
Run Code Online (Sandbox Code Playgroud)

如何在 .net 中取消转义和转义字符串?