-2

私が書いている私のプログラムでは、名前を尋ねたいのですが、入力に数値またはその他の不要な入力が含まれている場合は、ループバックしてもう一度やり直してください。

これは私の現在のコードです

private void gameForm_Load(object sender, EventArgs e)
{
    string value = "Type here";
    if (globalVariables.InputBox("Name", "Please enter name", ref value) == DialogResult.OK)
    {
        name = value;
        if (name.All(char.IsLetter))
        {
            lblName.Text = value;
        }
        else
        {
        }
    } 
}

無効な入力が存在する場合、このコードを再実行するにはどうすればよいですか?

4

3 に答える 3

0

新しいメソッドを作成します public void NameCheck()"次に、実行したいコードをそこに置きます"

次に、ページの読み込み中に NameCheck(); を配置します。メソッドを呼び出す。

したがって、名前に数字が含まれている場合は、NameCheck(); を呼び出します。もう一度、else で。

    public void NameCheck()
    {
        string value = "Type here";
        if (globalVariables.InputBox("Name", "Please enter name", ref value) == DialogResult.OK)
        {
            name = value;
            if (name.All(char.IsLetter))
            {
                lblName.Text = value;
            }
            else
            {
                NameCheck();
            }
        }
    }


    private void gameForm_Load(object sender, EventArgs e)
    {
        NameCheck();
    }
于 2014-07-20T02:47:04.020 に答える
-1

whileループを使用できます

while(true)
{
   if (globalVariables.InputBox("Name", "Please enter name", ref value) == DialogResult.OK)
    {
        name = value;
        if (name.All(char.IsLetter))
        {
            lblName.Text = value;
            break;
        }
    }
}
于 2014-07-19T22:51:38.760 に答える
-1
    private void gameForm_Load(object sender, EventArgs e)
    {
        reAsk:
        string value = "Type here";
        if (globalVariables.InputBox("Name", "Please enter name", ref value) == DialogResult.OK)
        {
            name = value;
            if (name.All(char.IsLetter))
            {
                lblName.Text = value;
            }
            else
            {                      
                goto reAsk;
            }
        }
    }
于 2014-07-19T23:26:59.980 に答える