是否可以使用Int32.TryParse
检查负数?用TryParse检查负数
int defaultTop;
displayTop = (Int32.TryParse(DisplayTop, out defaultTop) ? Convert.ToInt32(DisplayTop) : 1000);
是否可以使用Int32.TryParse
检查负数?用TryParse检查负数
int defaultTop;
displayTop = (Int32.TryParse(DisplayTop, out defaultTop) ? Convert.ToInt32(DisplayTop) : 1000);
为什么不使用UInt32.TryParse(DisplayTop, out defaultTop)
?
如果数字为0或正值,则返回true;否则返回false。
+ 1000000000000! – 2013-02-19 22:28:35
试试这个
int defaultTop;
var isValidInt = Int32.TryParse(DisplayTop, out defaultTop);
displayTop = isValidInt && defaultTop >= 0 ? defaultTop : 1000;
使用Math.Max:
displayTop = Math.Max(1,(Int32.TryParse(DisplayTop, out defaultTop) ? Convert.ToInt32(DisplayTop) : 1000));
当然,这么长的表情有点难看,但它工作。
你不能单独使用TryParse,你必须独立检查defaultTop
的值。如果你想把它全部放在一条线上,你可以尝试:
displayTop = ((Int32.TryParse(DisplayTop, out defaultTop) && defaultTop >= 0) ? defaultTop : 1000);
为什么你第二次转换它?你可以直接使用'defaultTop'。 – 2013-02-19 22:22:37
@TimSchmelter - 你是对的!祸害或盲目复制/粘贴。 – 2013-02-19 22:25:08
你想完成什么?如果它是一个有效的整数,那么它将被转换,而不管它是否为正数。如果它不是一个有效的Int,那么它将会失败... – Josh 2013-02-19 22:15:49
不能直接使用TryParse。但是为什么不在分析之后检查defaultTop本身呢? – 2013-02-19 22:16:35
我将DisplayTop传递给Storedproc以获取顶部的DisplayTop行数。 – BumbleBee 2013-02-19 22:17:17