日期:2014-05-17  浏览次数:21000 次

当多个方法调用的时候,参数命名在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,会发现,编写一次性的代码图一个方便,并且可以很容易重构出符合规范的代码,是多么爽的事情。VS201