关于程序执行顺序问题!?

neodotnet 2003-08-23 12:04:35
我自定义一个类MyClass,在Page_Load(...)函数中创建了这个类的一个实例,
void Page_Load(...)
{
MyClass myClass = new MyClass();
}
当我单击某个按钮时,调用这个类中的一个方法
myClass.Bind();

这时,当事件处理完毕,页面重新下载时,有没有又重新创建一个MyClass的实例?
我通过运行程序感觉没有!因为里面的模块级变量的值没有变.而我构造函数都是要初始化那些模块级变量的.

理论上是否重新创建了MyClass的实例??
...全文
50 4 打赏 收藏 转发到动态 举报
写回复
用AI写文章
4 条回复
切换为时间正序
请发表友善的回复…
发表回复
basil 2003-08-23
  • 打赏
  • 举报
回复
没有重新创建
假设重新创建了实例,.net编译会报错f:\inetpub\wwwroot\testOverride\WebForm1.aspx.cs(20): 类“testOverride.WebForm1”已经包含了“Label1”的定义
neodotnet 2003-08-23
  • 打赏
  • 举报
回复
alaisalaix(流水落花春去也,天上人间)

我是这样,我用这个类做的是一个翻页程序,因为很多页面都用相同的程序,我就把他单独写成一个类,里面一个模块级变量,用他来存储当前页面(m_PageIndex,构造函数使他为1),到每个页面的链接数字(如 1,2,3,...)都是一个LinkButton,我在单击时,调用一个方法,改变m_PageIndex的值,我发现他的值确实改变了.

如果重新创建了这个实例,这个m_PageIndex的值肯定是1,而不是我改变的那个,不知道我的逻辑对不对?
真相重于对错 2003-08-23
  • 打赏
  • 举报
回复
使用viewstate
if( viewstate["myClass"] == null )
{
myClass = new MyClass();
viewstate["myClass"] = myClass;
}
else
{
myClass = (MyClass)viewstate["myClass"];
}
alaisalaix 2003-08-23
  • 打赏
  • 举报
回复
首先,每次请求页面,肯定会执行:MyClass myClass = new MyClass();
而且在页面加载完后,myClass也就被释放了,因为myClass只在Page_Load()函数
作用域中有效,作用域的概念应该有吧!
因此,
你单击某个按钮时,怎么调用这个类中的一个方法myClass.Bind()???(myClass不存在)
myClass在Page_Load()中声明并初始化,当页面load完后,这个变量也就无效了

62,046

社区成员

发帖
与我相关
我的任务
社区描述
.NET技术交流专区
javascript云原生 企业社区
社区管理员
  • ASP.NET
  • .Net开发者社区
  • R小R
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告

.NET 社区是一个围绕开源 .NET 的开放、热情、创新、包容的技术社区。社区致力于为广大 .NET 爱好者提供一个良好的知识共享、协同互助的 .NET 技术交流环境。我们尊重不同意见,支持健康理性的辩论和互动,反对歧视和攻击。

希望和大家一起共同营造一个活跃、友好的社区氛围。

试试用AI创作助手写篇文章吧