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