CA1305:int.Parse(String)

时间:2009-06-12 02:32:26

标签: asp.net visual-studio cultureinfo

我收到了CA1305警告。

  

Microsoft.Globalization:因为   'int.Parse(string)'的行为可能会因此而异   当前用户的区域设置,   替换此电话   “_Default.CalculateImageButton_Click(对象,   ImageClickEventArgs)'调用   “int.Parse(字符串,   的IFormatProvider)”。如果结果   “int.Parse(字符串,   将显示IFormatProvider)'   用户,指定   'CultureInfo.CurrentCulture'为   'IFormatProvider'参数。   否则,如果结果将是   由软件存储和访问   当它被持久化到磁盘或   一个数据库,指定   'CultureInfo.InvariantCulture'。

如果在解析Int32时省略指定文化,究竟会出现什么问题?

2 个答案:

答案 0 :(得分:10)

这意味着当您从数据文件或数据库记录中读取“1,234”时,然后尝试通过Parse将其转换为Int,您将在美国获得1234,在德国获得1。警告提供了很好的建议 - 如果您正在与用户交互,请指定CurrentCulture(感谢Andrew!),如果您正在与文件系统或数据库(或任何!用户)进行交互,请使用InvariantCulture

答案 1 :(得分:2)

如果要解析整数,它可能有千个分隔符,可以是“,”或“。”取决于区域设置。