读书人

当多个方法调用的时分参数命名在Pag

发布时间: 2013-12-11 16:44:13 作者: rapoo

当多个方法调用的时候,参数命名在Page_Load内还是外好呢?
一个页面内的某参数,比如UserId,有多个方法要用到这个参数,我是在
Page_Load里命名这个参数,让调用方法再传递过去
还是直接在Page_Load外命名好呢??
方法一:


public class mypage : System.Web.UI.Page
{
protected void Page_Load(object sender, EventArgs e)
{
int UserId = Convert.ToInt32(Request.QueryString["uid"]);
doit1(UserId);
doit2(UserId);...
}
private void doit1(int userId, ...)
{
if(userId).....
}
private void doit1(int userId, ...)
{
if(userId).....
}
......
}


方法二:

public class mypage : System.Web.UI.Page
{
protected void Page_Load(object sender, EventArgs e)
{
UserId = Convert.ToInt32(Request.QueryString["uid"]);
doit1();
doit2();...
}
private int UserId;

private void doit1()
{
if (UserId == 123) //.....
}
private void doit2()
{
if (UserId == 123) //.....
}
......
}


哪个方法好点?
[解决办法]
最好不要使用全局变量,如果在调用的方法中改变此全局变量的值,下次调用的时候就出错了,并且查找问题时也不好查找。如果使用局部变量,就可以避免这些问题。
[解决办法]
引用:
Quote: 引用:

Quote: 引用:

如果一个方法使用的对象变量都是局部的(包括参数上声明的),那么这种方法比较稳定,甚至你可以定义到一个static的类型中作为“函数库”而使用。因为这种程序根本不考虑它从属于什么对象,而是自我封闭地进行计算处理的。例如数学计算往往就是如此。

如果一个方法是没有参数的,而方法内大量使用了所在的对象的属性/字段,这就要求你有比较清醒的“外部对象”协议,你确实有设计文档、进行过逻辑设计,才应该这样。因为它处理的是复杂的对象的简单行为。

如果你觉得这两种方法还分不清,那么这时候你只应该采取第一种、而不应该采取第二种。因为第二种,会让你更快递迷糊掉。


如果用过VS2013的CodeLens和CodeMap,会发现,编写一次性的代码图一个方便,并且可以很容易重构出符合规范的代码,是多么爽的事情。VS2013会列出所有的方法、字段都被哪些地方引用,虽然之前的版本也有类似的功能,但是2013将它内置到代码编辑器的每个成员的上方,随时可见。


private void doit1(int userId, ...)
{
if(userId)userId++;
}

请问一些初级:
1、比如这个方法内,userId的值更改了,那Page_Load内的UserId?是否也会被更改
2、doit1()最后是否需要写return;
3、如果方法doit1()调用了doit2(),那他们最后是否都需要写return;


当然不会更改。
void的方法如果无需在代码中间退出,无需return

读书人网 >C#

热点推荐