题
今天,我发现把字符串中的资源文件将导致它们被视为文本,即把“为第一行\ n文字的第二行文字”会造成转义字符本身成为逃出来的,有啥存储是“为第一条线\ n工作文本第二行文本” - 然后将这些在显示出来,代替我的回车和翼片
所以我想要做的是使用与string.replace把\\
成\
- 这似乎并没有工作。
s.Replace("\\\\", "\\");
因为字符串认为这里只有1反斜杠
不改变字符串的所有s.Replace("\\", "");
替换所有双引号和留给我只是正代替\ n
此外,使用@
和一半一样多的\
字符或Regex.Replace
方法得到相同的结果
任何人都知道的一个好办法做到这一点,而不由字符进行字符循环?
解决方案
由于\n
实际上是一个单个字符,则无法通过简单地将字符串中替换反斜杠达致这。你将需要更换每一对\
的和下面的字符与转义字符,如:
s.Replace("\\n", "\n");
s.Replace("\\t", "\t");
etc
其他提示
您会得到更好的服务调整RESX文件本身。换行符可以通过两种机制中输入:您可以编辑RESX文件为XML(在解决方案资源管理器中右击,选择“打开为”,然后选择XML),或者你可以在设计师做
如果您在XML做到这一点,只需按下回车键,退格键,以你所创建的新行的开始,你就大功告成了。你可以使用搜索做到这一点和替换,以及,虽然这将是棘手的。
如果您使用GUI RESX编辑器,按住SHIFT键的同时按ENTER键会给你一个换行符。
您可以做运行时更换的事情,但你发现,它的棘手得到持续 - 在我的脑海里构成一个代码味道。 (你也可以做一个性能参数,但是这将取决于字符串资源如何常被称为和一般你的应用程序的规模。)
实际上,我与约翰的解决方案去和编辑直接因为这是该项目的更好的解决方案的XML,但codelogic回答说是让我发狂的问题。
不隶属于 StackOverflow