110,561
社区成员
发帖
与我相关
我的任务
分享
namespace Test1
{
public partial class _Default : System.Web.UI.Page
{
string str;
protected void Page_Load(object sender, EventArgs e)
{
if(Page.IsPostBack)
{
return;
}
str = "ABCD";
}
protected void Button1_Click(object sender, EventArgs e)
{
Response.Write(str);
}
}
}
namespace Test1
{
public partial class _Default : System.Web.UI.Page
{
string str;
protected void Page_Load(object sender, EventArgs e)
{
if(Page.IsPostBack)
{
return;
}
str = "ABCD";
}
protected void Button1_Click(object sender, EventArgs e)
{
Response.Write(str);
}
}
}
首先,_Default是一个类,运行后,需要_Default pageObj=new _Default();给str赋值ABCD,以及输出str,是由这个pageObj来执行的,那么,做完这些事,pageObj马上销毁了(?),如果是这样,点击button1,回发后,第二次到访IIS,此时需要_Default newObj=new _Default();(?),如果是这样,那么
(1)按照.net托管机制,对象由GC管理,适当时候销毁,不能马上销毁啊,假如如下代码(疑问在注解里)
string str="AAAA";
System.Threading.Thread.Sleep(3000);
response.write(str); //挂起3分钟后,此时的str难道是重新建立的?不是上面的那个str了?
(2)很多人频繁访问的网站,服务器要不断new新对象吗?
(3)两次是不同对象,有没有验证的例子?我的那个例子也许有其他解释 string str = "123";
ViewState["str"] = str;
str = (string)ViewState["str"];