使用system.environment.newline和独立于文化.ToString()进行解析会导致我出现问题

时间:2015-01-28 01:32:37

标签: c# parsing save tostring

在我使用System.Environment.Newline作为我稍后解析的保存文件的分隔符之前,我曾参与过多个项目。

所有这些时间,它都出现在我所知道的仅限Windows的环境中 - 我正在为我正在开发的游戏制作一个将发布到mac和linux的游戏。在多平台上保存和解析它们会成为一个问题吗?我正在解析\ n并捕获\ r's。

我也使用.ToString()进行int转换而没有文化规范 - 这会不会带来一些问题?我认为它可以使用浮点数,因为它可能是35.5或35,5,但解析要么在系统中带回35.5。

1 个答案:

答案 0 :(得分:1)

如果您正在处理多个操作系统,那么简短的回答是肯定的。但修复它也是微不足道的。

对于行结尾,您可以使用正则表达式(或纯{'string.Replace)规范化EOL,以便{strong>不后跟\r变为\n \n {1}},\r\n变为\n。或者甚至更简单:根本不要使用Environment.NewLine,只是标准化为\n,这可能是最好的选择。

如果您希望ToString来电(以及后续int.Parse次来电)忽略文化,请尽可能使用CultureInfo.InvariantCulture。它将解决您可能遇到的任何和所有(反)序列化问题。