是否可以使用Int32.TryParse
检查负数?
int defaultTop;
displayTop = (Int32.TryParse(DisplayTop, out defaultTop) ? Convert.ToInt32(DisplayTop) : 1000 );
答案 0 :(得分:7)
为什么不使用UInt32.TryParse(DisplayTop, out defaultTop)
?
如果数字为0或正数,则返回true,否则返回false。
答案 1 :(得分:2)
试试这个
int defaultTop;
var isValidInt = Int32.TryParse(DisplayTop, out defaultTop);
displayTop = isValidInt && defaultTop >= 0 ? defaultTop : 1000;
答案 2 :(得分:2)
单独使用TryParse无法做到这一点,您必须独立检查defaultTop
的值。如果您想要一行,您可以尝试:
displayTop = ((Int32.TryParse(DisplayTop, out defaultTop) && defaultTop >= 0) ? defaultTop : 1000 );
答案 3 :(得分:1)
使用Math.Max:
displayTop = Math.Max(1,(Int32.TryParse(DisplayTop, out defaultTop) ? Convert.ToInt32(DisplayTop) : 1000 ));
当然,这么长的表达有点难看,但它有效。