语言:C#, javascript
问题:比如我这样写public string f()
{
Request.QueryString["a"]+.....//直接做一些操作
Request.QueryString["b"]+.....//直接做一些操作
Request.QueryString["c"]+.....//直接做一些操作
.....
}public string f'()
{
string a = Request.QueryString["a"];
string b = Request.QueryString["b"];
string c = Request.QueryString["c"];
..... a+...//做一些操作
b+...//做一些操作
c+...//做一些操作
}上面只是打个比方,并不仅限于Request.QueryString这种,就是说,一个函数(c#或者js)里是直接对一些对象操作,还是先把这些对象存放在变量里,然后再操作
因为这些对象只获取一次,而且有很多,所以我觉的是不是放在变量里多此一举,影响性能,但是放在变量里会显得代码比较好看,清晰,不知道各位看法如何
问题:比如我这样写public string f()
{
Request.QueryString["a"]+.....//直接做一些操作
Request.QueryString["b"]+.....//直接做一些操作
Request.QueryString["c"]+.....//直接做一些操作
.....
}public string f'()
{
string a = Request.QueryString["a"];
string b = Request.QueryString["b"];
string c = Request.QueryString["c"];
..... a+...//做一些操作
b+...//做一些操作
c+...//做一些操作
}上面只是打个比方,并不仅限于Request.QueryString这种,就是说,一个函数(c#或者js)里是直接对一些对象操作,还是先把这些对象存放在变量里,然后再操作
因为这些对象只获取一次,而且有很多,所以我觉的是不是放在变量里多此一举,影响性能,但是放在变量里会显得代码比较好看,清晰,不知道各位看法如何
前半句话有问题,后面说的正确。
两种方法性能上我觉得无差别,1不存在理论上性能好的说法;第一种方法尽管没有刻意声明一个变量来保存querystring中的内容,但是计算机做计算都是在内存中,就算你没声明,编译器会自己开辟空间,进行拆箱操作,和显示声明一个空间来保存实际上是一个道理。写法2,代码规范好些。string换成stringbuilder倒是可以节省内存空间,不过这里的处理逻辑,这种性能上的提高可以忽略不计了。
A=RequeryString[""]==null?"":RequeryString[""].ToString()
public string A
{
get
{
return ViewState[""].ToString();
}
set
{}}
遍历querystring,Request.QueryString.Keys[i];