首页 诗词 字典 板报 句子 名言 友答 励志 学校 网站地图
当前位置: 首页 > 教程频道 > .NET > C# >

当多个方法调用的时分,参数命名在Page_Load内还是外好呢

2013-12-11 
当多个方法调用的时候,参数命名在Page_Load内还是外好呢?一个页面内的某参数,比如UserId,有多个方法要用到

当多个方法调用的时候,参数命名在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

热点排行