您的位置:首页 > 其它

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

2012-12-10 13:45 225 查看
今天在做开发时,由于一段代码要被重用好多次的,于是为了让代码更规范和更易于维护,我就打算把该方法重构,但是提示消息是“有一个路径有返回值时要求每个路径都要有返回值”,我当时以为那就自己手写一下吧,可能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();

}
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: