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。個別に値を確認する必要があります。すべてを1行にまとめたい場合は、次を試してください。

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 に答える