我正在编写一个自定义字符串到十进制验证器,它需要使用忽略区域性的 Decimal.TryParse (即不关心输入是否包含“.”或“,”作为小数点分隔符)。
这是建议的方法:
public static bool TryParse(
string s,
NumberStyles style,
IFormatProvider provider,
out decimal result
)
我不知道使用什么作为第三个参数。我见过的例子是这样的:
culture = CultureInfo.CreateSpecificCulture("en-GB");
Decimal.TryParse(value, style, culture, out number)
所以他们创造了一种特定的文化。 CultureInfo 没有“CreateInvariantCulture”方法,并且 CultureInfo.InvariantCulture 不是所需的类型。
正确的用法是什么?
In fact CultureInfo.InvariantCulture
可以在这里使用。该参数期望IFormatProvider
,一个接口CultureInfo
实施。但InvariantCulture
是不变的,即它不随用户的设置而变化。
事实上,没有一种文化能够接受这两者。,
or .
作为小数点分隔符 – 它们都是其中之一。您必须找到其他方法来处理可以使用这些小数点分隔符之一的数据。
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)