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模式软件开发过程中,我们通常不会 关心应用程序是在哪里运行的,变量存放在哪里,客户端程序就运行在客户端,服务器端程 序就运行在服务器端,一般情况下,二者除了数据库中的数据外基本没有其他共享