我收到了CA1305警告。
Microsoft.Globalization:因为 'int.Parse(string)'的行为可能会因此而异 当前用户的区域设置, 替换此电话 “_Default.CalculateImageButton_Click(对象, ImageClickEventArgs)'调用 “int.Parse(字符串, 的IFormatProvider)”。如果结果 “int.Parse(字符串, 将显示IFormatProvider)' 用户,指定 'CultureInfo.CurrentCulture'为 'IFormatProvider'参数。 否则,如果结果将是 由软件存储和访问 当它被持久化到磁盘或 一个数据库,指定 'CultureInfo.InvariantCulture'。
如果在解析Int32时省略指定文化,究竟会出现什么问题?
答案 0 :(得分:10)
这意味着当您从数据文件或数据库记录中读取“1,234”时,然后尝试通过Parse将其转换为Int,您将在美国获得1234,在德国获得1。警告提供了很好的建议 - 如果您正在与用户交互,请指定CurrentCulture(感谢Andrew!),如果您正在与文件系统或数据库(或任何!用户)进行交互,请使用InvariantCulture
答案 1 :(得分:2)
如果要解析整数,它可能有千个分隔符,可以是“,”或“。”取决于区域设置。