整数的标准表示形式为ASCII十进制数字字符序列,仅当数字为负数时才带前缀“ - ”。除了表示的数字为零外,没有初始值为“0”。没有其他字符,包括逗号,货币符号,空格,单位,“+”,小数点等
在给定包含整数的规范表示的字符串时,任何.NET文化是否会使int.TryParse返回不变文化的不同值?
如果没有,.NET是否保证将来可能添加的文化会继续以这种方式运行?
或者换句话说......如果我只关心这种输入,我是否需要在调用int.TryParse时指定不变文化?
答案 0 :(得分:3)
即使是负号也有不同的选择,具体取决于文化。如果你做了
var numbers = from c in CultureInfo.GetCultures(CultureTypes.AllCultures)
group c by c.NumberFormat.NumberNegativePattern into g
select g;
然后检查numbers
您会看到某些文化对负号使用不同的选项,例如文化lo
或lo-LA
。
根据经验,我将CultureInfo.InvariantCulture
用于所有目的,除了将其显示给用户。