ASP.NET变量的作用域

ASP.NET变量的作用域不同于桌面程序如Delphi的WinForm。在ASP.NET中,由于服务面向多个用户,页面上的类方法内的变量在刷新时会丢失其新赋值,导致变量重置。例如,使用Session或TextBox保存状态时,每次请求都会从初始值开始,而不是累积之前的值。
摘要由CSDN通过智能技术生成


ASP.NET不用于delphi等WinForm,因为桌面程序是面向一个用户,而ASP.NET是面向多个用户。

所以,当你在程序中的class下,在方法、函数前写变量是,虽然是全页变量,但只要页面刷新,这个新赋值的值都会丢失。

如:

 

public class along:System.Web.UI.Page
{
    string s="a";
    protected void Button1_Click()
{
    s+="b";
    textbox1.text=s;
}
protected void Button2_Click()
{
    s+="c";
    textbox1.text=s;
}

}

你会发现 每当你点击按钮的时候,s的值并没有重复累加,而只是从初始化的a开始。

由于我们每次刷新asp.net页面都是一个全新的对象,而不是上一次访问的对象。所以 上次页面访问时对页面中变量的改动都没有保留。遇到这个问题的时候直觉就将这个变量设 置成static,这样是可以保留住页面中变量的状态。但这个状态是针对一个客户端的(如同 session的效果)。而得到的结果是只要一个客户端改变了该值则所有的其他客户端都受到 了影响(如同Applicatin的效果)。
  究其原因这还要从Asp.net的运行机制谈起。在C/S模式软件开发过程中,我们通常不会 关心应用程序是在哪里运行的,变量存放在哪里,客户端程序就运行在客户端,服务器端程 序就运行在服务器端,一般情况下,二者除了数据库中的数据外基本没有其他共享
评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值