是否有任何.NET文化以不同的方式处理整数的规范表示?

时间:2014-02-19 12:37:33

标签: c# .net parsing

整数的标准表示形式为ASCII十进制数字字符序列,仅当数字为负数时才带前缀“ - ”。除了表示的数字为零外,没有初始值为“0”。没有其他字符,包括逗号,货币符号,空格,单位,“+”,小数点等

在给定包含整数的规范表示的字符串时,任何.NET文化是否会使int.TryParse返回不变文化的不同值?

如果没有,.NET是否保证将来可能添加的文化会继续以这种方式运行?

或者换句话说......如果我只关心这种输入,我是否需要在调用int.TryParse时指定不变文化?

1 个答案:

答案 0 :(得分:3)

即使是负号也有不同的选择,具体取决于文化。如果你做了

var numbers = from c in CultureInfo.GetCultures(CultureTypes.AllCultures)
              group c by c.NumberFormat.NumberNegativePattern into g
              select g;

然后检查numbers您会看到某些文化对负号使用不同的选项,例如文化lolo-LA


根据经验,我将CultureInfo.InvariantCulture用于所有目的,除了将其显示给用户。