如何检查有效输入c#

时间:2015-02-20 14:52:15

标签: c# winforms isnullorempty

我尝试使用此方法,如果您没有按下正确的值,则会显示一个消息框,当您按下消息框时它将返回,您必须尝试输入严格值再来一次等等。如果该字段为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;
    }

3 个答案:

答案 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;
}