空の文字列をで解析するint.Parse
と、例外が発生します。つまりint.Parse("")
、結果は次のようになります。Input string was not in a correct format.
その問題を解決するには、TryParse
代わりに次を使用します。
int ina;
int inb;
if (int.TryParse(txttea.Text, out ina) && int.TryParse(txtcoffee.Text, out inb))
{
//Ok, more code here
}
else
{
//got a wrong format, MessageBox.Show or whatever goes here
}
もちろん、それらを個別にテストすることもできます[最初にina、次にinb、またはその逆]:
int ina;
if (int.TryParse(txttea.Text, out ina))
{
int inb;
if (int.TryParse(txtcoffee.Text, out inb))
{
//Ok, more code here
}
else
{
//got a wrong format, MessageBox.Show or whatever goes here
}
}
else
{
//got a wrong format, MessageBox.Show or whatever goes here
}
ここで、空の文字列の比較について、両方が空の場合のメッセージが必要な場合は、次のようにします。
if(this.txttea.Text == "" && this.txtcoffee.Text == "")
{
MessageBox.Show("select a item");
txttea.Focus();
}
一方、少なくとも1つが空のときにメッセージが必要な場合は、次のようにします。
if(this.txttea.Text == "" || this.txtcoffee.Text == "")
{
MessageBox.Show("select a item");
txttea.Focus();
}