0

是否可以使用检查负数Int32.TryParse

int defaultTop;
displayTop = (Int32.TryParse(DisplayTop, out defaultTop) ? Convert.ToInt32(DisplayTop) : 1000 );
4

4 回答 4

7

为什么不使用UInt32.TryParse(DisplayTop, out defaultTop)

如果数字为 0 或正数,这将返回 true,如果为负数,则返回 false。

于 2013-02-19T22:27:33.340 回答
2

试试这个

int defaultTop;
var isValidInt = Int32.TryParse(DisplayTop, out defaultTop);
displayTop = isValidInt && defaultTop >= 0 ? defaultTop : 1000;
于 2013-02-19T22:19:29.293 回答
2

你不能单独使用 TryParse 来做到这一点,你必须defaultTop独立检查 的值。如果您想在一行中完成所有操作,可以尝试:

displayTop = ((Int32.TryParse(DisplayTop, out defaultTop) && defaultTop >= 0) ? defaultTop : 1000 );
于 2013-02-19T22:19:45.840 回答
1

使用 Math.Max:

displayTop = Math.Max(1,(Int32.TryParse(DisplayTop, out defaultTop) ? Convert.ToInt32(DisplayTop) : 1000 ));

诚然,这么长的表达式有点难看,但它确实有效。

于 2013-02-19T22:19:35.767 回答