需要判断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'));
- }
public static bool IsNumber(char c) { 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'));
- }
public static bool IsDigit(char c) { if (!IsLatin1(c)) { return (CharUnicodeInfo.GetUnicodeCategory(c) == UnicodeCategory.DecimalDigitNumber); } return ((c >= '0') && (c <= '9')); }
Char.IsNumber 多了一步检查ASCII码。。。
转载于:https://www.cnblogs.com/junbird-nest/archive/2012/05/29/2523664.html