日期:2014-05-19  浏览次数:20992 次

c# IsDigit和IsNumber的区别?
如题

------解决方案--------------------
MSDN:
IsDigit 已重载。 指示某个 Unicode 字符是否属于十进制数字类别。
IsNumber 已重载。 指示某个 Unicode 字符是否属于数字类别。
------解决方案--------------------
学习中
------解决方案--------------------
IsDigit 专用于 10进制数

------解决方案--------------------
学习
------解决方案--------------------
通过反查.NET Framework的源代码,基本上两者没有什么差别。应该是IsDigit只判断 '0 '- '9 '这十个字符而IsNumber则还判断某些语言中的数字,如中文中的 '一 '但这只是看源代码的猜测,有待进一步确定。
------解决方案--------------------
当然是有区别的啦。譬如汉字‘一’用IsNumber就是true的,用IsDigit就是false了。
试试如下小例子:

char ch1 = '\u2160 '; // romanian numeral 1
bool b1 = Char.IsDigit(ch1);
bool b2 = Char.IsNumber(ch1);

------解决方案--------------------
Reflector真是个好东西...