itemVal = "0";
res = int.TryParse(itemVal, out num);
if ((res == true) && (num.GetType() == typeof(byte)))
return true;
else
return false; // goes here when I debugging.
Why num.GetType() == typeof(byte)
不返回true
?
Because num
is an int
, not a byte
.
GetType()
得到System.Type
运行时对象的。在这种情况下,它与typeof(int)
, since num
is an int
.
typeof()
得到System.Type
编译时类型的对象。
您的评论表明您正在尝试确定该数字是否适合一个字节;变量的内容不会影响其类型(实际上,是变量的类型限制了其内容)。
您可以通过以下方式检查该数字是否适合一个字节:
if ((num >= 0) && (num < 256)) {
// ...
}
或者这样,使用强制转换:
if (unchecked((byte)num) == num) {
// ...
}
但是,您的整个代码示例似乎可以替换为以下内容:
byte num;
return byte.TryParse(itemVal, num);
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)