0

テキストボックスの一方または両方が空の場合にエラーを回避するための解決策を探していますか?高さと幅の値がnullであるかどうかを確認するためにテストしましたが、コードの後でしか実行できず、遅くなります!?ヘルプが高く評価されています!ありがとう!

// Get values from text boxes
int height = Convert.ToInt32(txtInputA.Text);
int width = Convert.ToInt32(txtInputB.Text);
4

3 に答える 3

4

ユーザー入力を整数として解析しようとしているため、空の文字列以上のものをチェックする必要があります。入力に数字以外の文字が含まれている場合はどうなりますか?数が多すぎる場合はどうなりますか?

これをすべて検証する最も簡単な方法は、を使用することですInt32.TryParse。これは、有効性をチェックし、変換(有効な場合)を1回の呼び出しで実行します

int height, width;
if (int.TryParse(txtInputA.Text, out height) == false)
    // Alert: invalid height.
if (int.TryParse(txtInputB.Text, out width) == false)
    // Alert: invalid width.

編集:コメントされた「アラート」によって、(呼び出し元のメソッドによって)キャッチされてユーザーに表示される例外をスローすると想定しています。上記のロジックから直接エラーメッセージを表示する場合は、変換が失敗した後、必ずメソッドの実行を停止してください(returnステートメントなどを介して)。

于 2012-05-20T12:12:08.160 に答える
1

次のように実行できます。

  string aText = string.IsNullOrEmpty(txtInputA.Text)?"0":txtInputA.Text;
  int height = Convert.ToInt32(aText);

または、次のようにすることもできます:

  int height = 0;
  int.TryParse(txtInputA.Text, out height);
于 2012-05-20T12:08:43.007 に答える
-1

TextBoxが Empty でないかどうかを確認する方法は次のとおりです。

int height;
int width;
if (!string.IsNullOrWhiteSpace(txtInputA.Text) & !string.IsNullOrWhiteSpace(txtInputB.Text))
{
    // Get values from text boxes
    height = Convert.ToInt32(txtInputA.Text);
    width = Convert.ToInt32(txtInputB.Text);
}
else
{
    MessageBox.Show("Please Enter Height and Width!");
}
于 2012-05-20T12:08:04.073 に答える