如何在方法之间使用return

本文关键字:return 之间 方法 | 更新日期: 2023-09-27 18:08:02

在我的程序中,我有一个按钮单击,从onclick事件我调用一些文本框验证的一个方法。代码是:

  protected void btnupdate_Click(object sender, EventArgs e)
  {
     CheckValidation();
    //Some other Code
  }
  public void CheckValidation()
  {
    if (txtphysi.Text.Trim() == "")
    {
       lblerrmsg.Visible = true;
       lblerrmsg.Text = "Please Enter Physician Name";
       return;
    }
    //Some other Code
  }

这里,如果txtphysi.text为空,那么它进入循环并使用return,那么它只来自CheckValidation()方法,并且在btnupdate_Click事件中继续,但这里我也想停止btnupdate_Click中的执行过程。我该怎么做呢?

如何在方法之间使用return

在我的理解中,你需要在这里应用的是非常简单的编程逻辑。

即从CheckValidation()方法返回Boolean而不是返回void,这样父函数从函数的执行中知道状态。

protected void btnupdate_Click(object sender, EventArgs e)
{
    var flag = CheckValidation();
    if(!flag)
        return;
    //Some other Code
}
public bool CheckValidation()
{
    var flag = false; // by default flag is false
    if (string.IsNullOrWhiteSpace(txtphysi.Text)) // Use string.IsNullOrWhiteSpace() method instead of Trim() == "" to comply with framework rules
    {
       lblerrmsg.Visible = true;
       lblerrmsg.Text = "Please Enter Physician Name";
       return flag;
    }
    //Some other Code
    flag = true; // change the flag to true to continue execution
    return flag;
}

要实现这一点:

1)修改CheckValidation()方法的返回类型为bool。在btnupdate_Click()方法中,沿着

行执行一些操作
if(!CheckValidation())
{
    return;
}

希望对你有帮助。

. NET,你已经标记为,那么你应该使用RequiredFieldValidator(对于webforms),你可以使用DataAnnotations,如果你正在使用MVC: http://forums.asp.net/t/1983198.aspx?RequiredFieldValidator+in+MVC

虽然答案已经被接受,但我认为将代码放在事件中并不是好的做法。对于这种目的,最好使用委托。

public class Sample
{
    public Sample()
    {
        UpdateAction = OnUpdate;
    }
    Action UpdateAction = null;
    private void OnUpdate()
    {
        //some update related stuff
    }

    protected void btnupdate_Click(object sender, EventArgs e)
    {
        CheckValidation(UpdateAction);
    }
    public void CheckValidation(Action action)
    {
        if (txtphysi.Text.Trim() == "")
        {
            lblerrmsg.Visible = true;
            lblerrmsg.Text = "Please Enter Physician Name";
            return;
        }
        action();
    }
}

试试这个:

protected void btnupdate_Click(object sender, EventArgs e)
{
    if(!CheckValidation())
    {
        //Some other Code
    }
}
public bool CheckValidation()
{
    if (string.isnullorEmpty(txtphysi.Text.Trim()) )
    {
        lblerrmsg.Visible = true;
        lblerrmsg.Text = "Please Enter Physician Name";
        return false;
    }
    else
    {
        //Some other Code
        return true;
    }
}