使用TryParse检查负数

时间:2013-02-19 22:13:46

标签: c# tryparse

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

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

4 个答案:

答案 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 ));

当然,这么长的表达有点难看,但它有效。