我尝试使用此方法,如果您没有按下正确的值,则会显示一个消息框,当您按下消息框时它将返回,您必须尝试输入严格值再来一次等等。如果该字段为null或为空则必须给出= 0 ..如果我按ex。 e2它必须用消息框填充?
尝试了这个没有其他如果..并且消息框vil不会消失?请帮忙
public int playerOneDart1Value;
public int calculateDart1()
{
if (player == "t1" || player == "T1" || player == "3")
{
playerOneDart1Value = 3;
}
else if (player == null) or empty??
{
playerOneDart1Value = 0;
}
else
{
MessageBox.Show("not valid input");
return calculateDart1();
}
return playerOneDart1Value;
}
答案 0 :(得分:2)
您正在递归调用函数calculateDart1
,因此消息框不会消失的原因是MessageBox.Show("not valid input");
被一遍又一遍地调用。
答案 1 :(得分:2)
您在显示消息框后直接呼叫return calculateDart1();
,因此在再次进行检查之前,用户永远无法更改输入,并显示消息框。
答案 2 :(得分:1)
您在calculateDart1()
提示后立即调用MessageBox
,这会导致无限循环,导致用户无法提供新输入。对于你的" null或空"要求,您可以使用string.IsNullOrEmpty
,如果字符串为true
或为空,则返回null
。
public int playerOneDart1Value;
public int calculateDart1()
{
if (string.IsNullOrEmpty(player))
{
playerOneDart1Value = 0;
}
else if (player == "t1" || player == "T1" || player == "3")
{
playerOneDart1Value = 3;
}
else
{
MessageBox.Show("not valid input");
//you can use something like a negative value to indicate invalid input
playerOneDart1Value = -1;
}
return playerOneDart1Value;
}