有这么一段程序
public void Method(string id)
        {
            if (!IsIdExists(id))
            {
                // 询问是否创建该ID,如果选择(是)则创建并继续执行DoSomething(),否则结束。
            }            DoSomething();
        }
我就是想问下,其实中注释那一段代码该如何写?事件处理异常处理

解决方案 »

  1.   


                if (MessageBox.Show("aaa", "aaaa", MessageBoxButtons.OKCancel) == System.Windows.Forms.DialogResult.OK)
                {
                }
                else
                {            }
      

  2.   

    if (MessageBox.Show("是否创建该ID") == DialogResult.Yes)
      DoSomething();
    else
      return;
      

  3.   

            public void Method(string id)         
            {
                if (!IsIdExists(id))
                {
                    if (MessageBox.Show("是否创建该ID", "提示", MessageBoxButtons.YesNo, MessageBoxIcon.Question, MessageBoxDefaultButton.Button2) == DialogResult.Yes)
                        DoSomething();
                    else
                        return;
                }
            } 
      

  4.   

    public void Method(string id,bool iscreate)
            {
                if (!IsIdExists(id))
                {
                    // 询问是否创建该ID,如果选择(是)则创建并继续执行DoSomething(),否则结束。
                     if(iscreate)
                     DoSomething();
                     else
                     return;
                }
     
                DoSomething();
            }
      

  5.   


    public void Method(string id,bool iscreate) 再多加个参数是否创建..
      

  6.   

    不想在纯业务类里面引入UI操作的话,那你可以将IsIdExists方法放到UI操作层去,而Method方法只处理DoSomething();或者你也可以专门建一个用来处理系统中所有需要与用户交互或提示的工程
     
     
      

  7.   

    当然,对于IsIdExists()这样的情况是可以这样做,但如果将它换成一个执行时的例外情况,而我又希望用户来选择是否忽略这个例外,而不是简单的抛出异常随后结束执行,又该怎么做?
      

  8.   

    如果采用这种方式的话,那出现例外情况之后就不可能继续执行DoSomethine()了吧
      

  9.   


    你可以把DoSomething封装成一个方法,然后在UI层调用这个方法
      

  10.   

    try
    {
      //正常的逻辑
    }
    catch
    {
    //使用Messagebox等来询问是否处理
    if (MessageBox.Show("aaa", "aaaa", MessageBoxButtons.OKCancel) == System.Windows.Forms.DialogResult.OK)
    调用Dosomething
    }
      

  11.   

    public void Method(string id)         
    {             
         if(Server.RequestCreateID(id))
        {
           dosomething();
        }    return;
    }server是外部提供的接口实现