テキストボックスの一方または両方が空の場合にエラーを回避するための解決策を探していますか?高さと幅の値がnullであるかどうかを確認するためにテストしましたが、コードの後でしか実行できず、遅くなります!?ヘルプが高く評価されています!ありがとう!
// Get values from text boxes
int height = Convert.ToInt32(txtInputA.Text);
int width = Convert.ToInt32(txtInputB.Text);
テキストボックスの一方または両方が空の場合にエラーを回避するための解決策を探していますか?高さと幅の値がnullであるかどうかを確認するためにテストしましたが、コードの後でしか実行できず、遅くなります!?ヘルプが高く評価されています!ありがとう!
// Get values from text boxes
int height = Convert.ToInt32(txtInputA.Text);
int width = Convert.ToInt32(txtInputB.Text);
ユーザー入力を整数として解析しようとしているため、空の文字列以上のものをチェックする必要があります。入力に数字以外の文字が含まれている場合はどうなりますか?数が多すぎる場合はどうなりますか?
これをすべて検証する最も簡単な方法は、を使用することです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
ステートメントなどを介して)。
次のように実行できます。
string aText = string.IsNullOrEmpty(txtInputA.Text)?"0":txtInputA.Text;
int height = Convert.ToInt32(aText);
または、次のようにすることもできます:
int height = 0;
int.TryParse(txtInputA.Text, out height);
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!");
}