一般都是变量在外部定义 page_load内new
但我想知道用意何在,有什么区别
是不是当页面请求结束后,page_load内定义的就会被释放,而外面的则不会,方便下次请求使用?我个人理解是这样
但我想知道用意何在,有什么区别
是不是当页面请求结束后,page_load内定义的就会被释放,而外面的则不会,方便下次请求使用?我个人理解是这样
解决方案 »
- 请教各位高手:怎么设置滚动条的宽度和高度同时怎么设置滚动条停在中间位置
- 急~~~vs2005下调试无法查看页面,只能在iis下浏览页面!
- 如何一次性读取出xml语言文件,在使用中直接从内存中取相应字符串?
- 请问用中文版的VS2003制作的ASP.NET安装程序界面怎么调成英文的呀
- 急急急急~~~怪问题!!高手来---先开100分不够再开帖!!!
- asp.net AJAX应用中不能使用response.write 那么怎么做弹出提示呢
- Calendar控件日期多选如何改变背景色
- gridview 行变色的问题
- 请教各位高手一个关于命名空间的问题.
- asp+在vs7下调试的时侯,都编译成了DLL,在运行目录bin下,.NET的DLL是编译就自动注册,我一调试就只用重启动windows(就跟com一样),大家有什么好的解决办法?
- 三层架构中,多表连接查询中实体类和实体访问类改如何写呢?
- 未能加载文件或程序集“AjaxControlToolkit”或它的某一个依赖项。参数错误。 (异常来自 HRESULT:0x80070057 (E_INVALI
当你外面定义一个变量int i=0;
然后在方法Page_Load(){i=100;},再在方法void A(){Response.Write(i.ToString();)},这个输出的是100,不是0,这个i是一个全局变量。
而你那个什么
“是不是当页面请求结束后,page_load内定义的就会被释放,而外面的则不会,方便下次请求使用?我个人理解是这样”
是Page_Load(){int i=100;}这个变量只能是这个方法体内部使用,其他方法是没办法访问到这个变量的
我问的是
那定义在全局,页面请求完是否还存在
很多class在全局定义,却在load里new,这样的意义何在
在性能优化方面,是否有体现.
如果说只是你说的全局和局部这么简单,那我就当我是来找骂的.
1、说话前仔细看清楚题目,楼主的意思是为什么不在声明的时候new,而到pageload里面new;
2、理论上的概念上的知识差清楚了再回答问题,不要想当然就说,免得好心办错事
这看你的具体需求,当你会在pageload之前使用该变量的实例的时候就有区别了,
比如如果在pageload里new的话,在init事件要调用该变量就是报错
page的加载过程:
init -> loadcontrolstate -> loadviewstate -> loadpostdata -> onload
-> prerender -> saveviewstate ->savecontrolstate ->render
就Page内而言是不存在所谓的全局变量的.
所以在需要ViewState/Cookie/Session/Cache等手段来保存状态/保存需要的值.
2.千万别乱定义页面局部变量并赋初始值,比如 YourClass A = new YourClass();你可以在该语句下断点就知道了,每次客户端的POST/GET都会触发一次 YourClass A = new YourClass();,这就是为什么WebForm中尽量或者不要使用此类局部变量.
3."是不是当页面请求结束后,page_load内定义的就会被释放,而外面的则不会,方便下次请求使用?我个人理解是这样"
不论你放在页面的哪里,都会被释放掉(对象在GC回收前还存在与内存中),参考页面生命周期(使用了持久化手段的除外)http://msdn.microsoft.com/en-us/library/ms178472.aspx
1、说话前仔细看清楚题目,楼主的意思是为什么不在声明的时候new,而到pageload里面new