是否可以使用检查负数Int32.TryParse
?
int defaultTop;
displayTop = (Int32.TryParse(DisplayTop, out defaultTop) ? Convert.ToInt32(DisplayTop) : 1000 );
为什么不使用UInt32.TryParse(DisplayTop, out defaultTop)
?
如果数字为 0 或正数,这将返回 true,如果为负数,则返回 false。
试试这个
int defaultTop;
var isValidInt = Int32.TryParse(DisplayTop, out defaultTop);
displayTop = isValidInt && defaultTop >= 0 ? defaultTop : 1000;
你不能单独使用 TryParse 来做到这一点,你必须defaultTop
独立检查 的值。如果您想在一行中完成所有操作,可以尝试:
displayTop = ((Int32.TryParse(DisplayTop, out defaultTop) && defaultTop >= 0) ? defaultTop : 1000 );
使用 Math.Max:
displayTop = Math.Max(1,(Int32.TryParse(DisplayTop, out defaultTop) ? Convert.ToInt32(DisplayTop) : 1000 ));
诚然,这么长的表达式有点难看,但它确实有效。