好的,我有一个字符串
string textToShow = "this\nrocks"
当在winforms窗口中放入标签时,将显示
this
rocks
我想得到的结果是什么。现在,我没有在代码中设置textToShow,而是在资源文件中设置它。当我尝试使用
从资源文件中获取值时Properties.Resources.ResourceManager.GetString("textToShow");
整个字符串将被逐字对待,显示
this\nrocks
在winforms窗口中放入标签时。这不是我要找的结果。那么在资源文件中存储带有特殊字符的字符串的最佳方法是什么?我可以为每个特殊字符执行字符串替换,例如
string.Replace(@"\n", "\n");
但是每当我调用方法ResourceManager.GetString时我都需要替换每个特殊字符,我认为这不是最优雅的解决方案。如果有一些方法可以从方法ResourceManager.GetString返回的字符串不是逐字的,请告诉我。
由于
答案 0 :(得分:1)
这已在这里得到解答:StackOverflow: How to deal with newline
基本上你有两个有用的选择:
在资源管理器文本编辑器中使用shift + enter
添加新行。
或者在阅读时使用String.Format()
将{0}
替换为\n
。
答案 1 :(得分:0)
在资源编辑器中输入“this< shift + enter > rocks”作为资源值。
答案 2 :(得分:0)
.Net 4.5框架具有unescape功能,如下所示:
using System.Text.RegularExpressions;
Regex.Unescape(Properties.Resources.ResourceManager.GetString("textToShow"));
解决您的问题。现在,您可以在资源文件中使用\n
和\u
。