如何检查有效输入 C#

How to Check for valid input c#

我试图让这个方法像,如果你没有按下正确的值,一个消息框会显示,当你按下消息框时它会 return 你必须尝试把再次输入正确的值等等。如果该字段为 null 或为空,则必须给出 =0.. 如果我按 ex。 e2 它必须弹出消息框??

已经尝试过这个没有 else if.. 并且消息框 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;
    }

您正在递归调用函数 calculateDart1,因此消息框不会消失的原因是 MessageBox.Show("not valid input"); 被一遍又一遍地调用。

您在显示消息框后直接调用 return calculateDart1();,因此在再次进行检查并显示消息框之前,用户永远没有机会更改输入。

您在 MessageBox 提示后立即调用 calculateDart1(),这会导致无限循环,使用户无法提供新的输入。对于您的 "null or empty" 要求,如果字符串为 null 或为空,则可以使用 string.IsNullOrEmpty which returns true

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