C# 用TryParse检查负数

C# 用TryParse检查负数,c#,tryparse,C#,Tryparse,是否可以使用Int32.TryParse检查负数 int defaultTop; displayTop = (Int32.TryParse(DisplayTop, out defaultTop) ? Convert.ToInt32(DisplayTop) : 1000 ); 试试这个 int defaultTop; var isValidInt = Int32.TryParse(DisplayTop, out defaultTop); displayTop = isValidInt &

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

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

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

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


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

您想实现什么?如果它是一个有效的整数,那么它将被转换,不管它是负数还是正数。如果它不是一个有效的Int,那么它将失败…而不是直接使用TryParse。但是为什么不在解析后检查defaultTop本身呢?我正在将DisplayTop传递给Storedproc以获取顶级DisplayTop行数。为什么要再次转换它?你可以直接使用
defaultTop
。@TimSchmelter-你说得对!O邪恶或盲目复制/粘贴。