当前位置:编程学习 > C#/ASP.NET >>

怎么强行关闭方法


//假如现在执行了方法ShowText
public void ShowText(Object src,EventArgs e){
YanSe_Write();
ChuLiQi_Write();
XianKa_Write();
}
public void YanSe_Write(){
int ii=Convert.ToInt32(YanSe_Drop.SelectedItem.Value);
for(int i=1;i<=ii;i++){
string stri=Convert.ToString(i);
string InputLeft="InputAA"+stri;
string InputLeft_Text=Convert.ToString(Request.Form[InputLeft]);
if (InputLeft_Text==""){
        whatinfo.Text="执行失败";
        ShowText.kill();//!!!注意在这里呢!当执行到这个子方法时,如果执行失败,怎么结束方法ShowText()?以使他不再执行ChuLiQi_Write()、XianKa_Write()呢??? }
else{
                 whatText.Text="执行成功!"
}
}
}
public void ChuLiQi_Write(){
int ii=Convert.ToInt32(YanSe_Drop2.SelectedItem.Value);
for(int i=1;i<=ii;i++){
string stri=Convert.ToString(i);
string InputLeft="InputBB"+stri;
string InputLeft_Text=Convert.ToString(Request.Form[InputLeft]);
if (InputLeft_Text==""){
        whatinfo.Text="执行失败";
        ShowText.kill();
}
else{
                 whatText.Text="执行成功!"
}
}
}
public void XianKa_Write(){
      ...
        }
--------------------编程问答-------------------- 你把它改为return true/false不就行了???

然后上面改成
if(YanSe_Write())
{
ChuLiQi_Write();
    XianKa_Write();
}

不就行了??
--------------------编程问答-------------------- 你为什么不让YanSe_Write返回一个值呢,直接根据返回值来判断这个函数执行完成后还往不往下执行 --------------------编程问答-------------------- return 掉不就不会往下执行了吗? --------------------编程问答-------------------- //假如现在执行了方法ShowText
public void ShowText(Object src,EventArgs e){
    if(!YanSe_Write()) return;
    ChuLiQi_Write();
    XianKa_Write();
    }
public bool YanSe_Write(){
    bool rtn = true
    int ii=Convert.ToInt32(YanSe_Drop.SelectedItem.Value);
    for(int i=1;i<=ii;i++){
    string stri=Convert.ToString(i);
    string InputLeft="InputAA"+stri;
    string InputLeft_Text=Convert.ToString(Request.Form[InputLeft]);
    try
    {
    if (InputLeft_Text==""){
            whatinfo.Text="执行失败";
            ShowText.kill();//!!!注意在这里呢!当执行到这个子方法时,如果执行失败,怎么结束方法ShowText()?以使他不再执行ChuLiQi_Write()、XianKa_Write()呢???        }
        else{
                 whatText.Text="执行成功!"
        }
        }
      }
      catch{ rtn = false;}
     return rtn;
    }
public void ChuLiQi_Write(){
    int ii=Convert.ToInt32(YanSe_Drop2.SelectedItem.Value);
    for(int i=1;i<=ii;i++){
    string stri=Convert.ToString(i);
    string InputLeft="InputBB"+stri;
    string InputLeft_Text=Convert.ToString(Request.Form[InputLeft]);
    if (InputLeft_Text==""){
            whatinfo.Text="执行失败";
            ShowText.kill();
        }
        else{
                 whatText.Text="执行成功!"
        }
        }
    }
public void XianKa_Write(){
      ...
        }

--------------------编程问答--------------------
引用 1 楼 starfd 的回复:
你把它改为return true/false不就行了???

然后上面改成
if(YanSe_Write())
{
ChuLiQi_Write();
XianKa_Write();
}

不就行了??

没有那么简单,如果ChuLiQi_Write()失败了呢?如果XianKa_Write()失败了呢?后面还有10多个呢?我只是省略了,总不能写几十个判断吧? --------------------编程问答-------------------- 强制的推出方法??
return.. --------------------编程问答-------------------- exit(0);
exit(1);
exit(2);
这几个强制退出方法,注意慎用!!!
尤其是exit(0); --------------------编程问答-------------------- 那你就改个思路,用事件的方式来做~~~~~ --------------------编程问答-------------------- 弱弱的问下···  可以用try ...catch 吗···· --------------------编程问答-------------------- 好像都不太理想 --------------------编程问答-------------------- 我是来学习的
补充:.NET技术 ,  ASP.NET
CopyRight © 2012 站长网 编程知识问答 www.zzzyk.com All Rights Reserved
部份技术文章来自网络,