在我使用System.Environment.Newline作为我稍后解析的保存文件的分隔符之前,我曾参与过多个项目。
所有这些时间,它都出现在我所知道的仅限Windows的环境中 - 我正在为我正在开发的游戏制作一个将发布到mac和linux的游戏。在多平台上保存和解析它们会成为一个问题吗?我正在解析\ n并捕获\ r's。
我也使用.ToString()进行int转换而没有文化规范 - 这会不会带来一些问题?我认为它可以使用浮点数,因为它可能是35.5或35,5,但解析要么在系统中带回35.5。
答案 0 :(得分:1)
如果您正在处理多个操作系统,那么简短的回答是肯定的。但修复它也是微不足道的。
对于行结尾,您可以使用正则表达式(或纯{'string.Replace
)规范化EOL,以便{strong>不后跟\r
变为\n
\n
{1}},\r\n
变为\n
。或者甚至更简单:根本不要使用Environment.NewLine
,只是标准化为\n
,这可能是最好的选择。
如果您希望ToString
来电(以及后续int.Parse
次来电)忽略文化,请尽可能使用CultureInfo.InvariantCulture
。它将解决您可能遇到的任何和所有(反)序列化问题。