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