函数为什么实现的是一些操作但却有整形返回值

来源:互联网 发布:loading windows files 编辑:程序博客网 时间:2024/04/30 05:55

今天在做开发时,由于一段代码要被重用好多次的,于是为了让代码更规范和更易于维护,我就打算把该方法重构,但是提示消息是“有一个路径有返回值时要求每个路径都要有返回值”,我当时以为那就自己手写一下吧,可能VS2010在这种情况下处理不了吧,可是手写完成后发现我错了,在这里我要说一声VS实在太强大、太智能了,这时我调试了断电测试了下,在被调函数中return执行时,只是返回到主程序,而不是主程序返回,于是我产生了一种想法:“通过设置其返回值的不同来判断是否执行主程序中的return操作”这时将下面的代码:

public void  chuangkou(string windowname)
        {
            foreach (Form childrenForm in this.MdiChildren)
            {
                //检测是不是当前子窗体名称
                if (childrenForm.Name == windowname)
                {
                    //是的话就是把他显示  
                    childrenForm.Visible = true;
                    //并激活该窗体 
                    childrenForm.Activate();
                    childrenForm.WindowState = FormWindowState.Maximized;
                    return ;
                }
                if (childrenForm.Name != windowname)
                {
                    childrenForm.Dispose();
                    childrenForm.Close();
                             }
            }
      }

修改成第二种:

 /// <summary>
        /// 下面的程序为了就是实现一些操作,通过调用的地方通过其返回值的不同判断是否执行return操作
        /// </summary>
        /// <param name="windowname"></param>
        /// <returns></returns>
        public int  chuangkou(string windowname)
        {
            foreach (Form childrenForm in this.MdiChildren)
            {
                //检测是不是当前子窗体名称
                if (childrenForm.Name == windowname)
                {
                    //是的话就是把他显示  
                    childrenForm.Visible = true;
                    //并激活该窗体 
                    childrenForm.Activate();
                    childrenForm.WindowState = FormWindowState.Maximized;
                    return 0;
                }
                if (childrenForm.Name != windowname)
                {
                    childrenForm.Dispose();
                    childrenForm.Close();
                    return 1;
                }
            }
            return 2;
        }

 

然后在主程序中:

 private void buttonItem23_Click(object sender, EventArgs e)
        {
            int k = chuangkou("frm_zuzhijigoutu");//获得其返回值
            if (k == 0)//如果返回值等于0,则return
            {
                return;
            }

            frm_zuzhijigoutu frm_zuzhijigoutu = new frm_zuzhijigoutu();
            frm_zuzhijigoutu.MdiParent = this;
            frm_zuzhijigoutu.Show();
        }

 

 

原创粉丝点击