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

获取参数效率问题
请看如下两段代码:

/* 第一段,A B C都要经过QueryString,总的要3次的QueryString */
private string A
    {
//Response.Write(“要QS了”);
string a = Request.QueryString[urlname];
if (string.IsNullOrEmpty(a))return "";
return a;
    }
private string B
    {
return A+"bvalue";
    }
private string C
    {
return B+"cvalue";
    }
private void Page_Load(object sender, EventArgs e)
{
Response.Write(C);
}


/* 第2段,A经过QueryString,BC就都不用QueryString */
private string A =""
private string B =""
private string C =""
private void Page_Load(object sender, EventArgs e)
{
string a = Request.QueryString[urlname];
if (!string.IsNullOrEmpty(a))
A=a;
B = A + "bvalue";
C = B + "cvalue";
Response.Write(C);//或者前台调用ABC
}

上面两段代码,第一段比较方便也比较整洁,但是QueryString比较多次,这个在极其大流量的情况下会不会比较没效率呢,大家认为上面哪个更好呢?
String

------解决方案--------------------
第一段写成get{ if(a != null) return a; ...}就行了
当有逻辑的时候,将字段封装成属性
如果Page_Load里代码太长,还是将代码提取成属性或方法好了