如何在方法之间使用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
中的执行过程。我该怎么做呢?
在我的理解中,你需要在这里应用的是非常简单的编程逻辑。
即从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;
}
}