Char.IsDigit与Char.IsNumber的区别
需要判断Char是否为数字,查看了下MSDN,发现有三种方法:
Char.IsDigit (aChar) 指示指定字符串中位于指定位置处的字符是否属于十进制数字类别
Char.IsNumber(aChar) 指示指定字符串中位于指定位置的字符是否属于数字类别
aChar>='0'&&aChar<='9' 判断aChar是否位于‘0’到‘9’之前 等同于第一种
用.NET Reflector 查看其实现代码:
- {
- if (!IsLatin1(c))
- {
- return CheckNumber(CharUnicodeInfo.GetUnicodeCategory(c));
- }
- if (!IsAscii(c))
- {
- return CheckNumber(GetLatin1UnicodeCategory(c));
- }
- return ((c >= '0') && (c <= '9'));
- }
- {
- if (!IsLatin1(c))
- {
- return (CharUnicodeInfo.GetUnicodeCategory(c) == UnicodeCategory.DecimalDigitNumber);
- }
- return ((c >= '0') && (c <= '9'));
- }
Char.IsNumber 多了一步检查ASCII码。。。