Char.IsDigit与Char.IsNumber的区别[转]


 

需要判断Char是否为数字,查看了下MSDN,发现有三种方法:

Char.IsDigit (aChar)              指示指定字符串中位于指定位置处的字符是否属于十进制数字类别

Char.IsNumber(aChar)        指示指定字符串中位于指定位置的字符是否属于数字类别

aChar>='0'&&aChar<='9'     判断aChar是否位于‘0’到‘9’之前  等同于第一种

 

用.NET Reflector 查看其实现代码:

public static bool IsNumber(char c)  
  1. {  
  2.     if (!IsLatin1(c))  
  3.     {  
  4.         return CheckNumber(CharUnicodeInfo.GetUnicodeCategory(c));  
  5.     }  
  6.     if (!IsAscii(c))  
  7.     {  
  8.         return CheckNumber(GetLatin1UnicodeCategory(c));  
  9.     }  
  10.     return ((c >= '0') && (c <= '9'));  
  11. }   

public static bool IsDigit(char c)  
  1. {  
  2.     if (!IsLatin1(c))  
  3.     {  
  4.         return (CharUnicodeInfo.GetUnicodeCategory(c) == UnicodeCategory.DecimalDigitNumber);  
  5.     }  
  6.     return ((c >= '0') && (c <= '9'));  
  7. }  

 

Char.IsNumber 多了一步检查ASCII码。。。


免责声明!

本站转载的文章为个人学习借鉴使用,本站对版权不负任何法律责任。如果侵犯了您的隐私权益,请联系本站邮箱yoyou2525@163.com删除。



 
粤ICP备18138465号  © 2018-2025 CODEPRJ.COM