webform情况:
成员变量abc当赋值之后,则该值存在,直到再次触发任何事件,
该值消失,abc=null,接着程序首先运行的是public string abc="ddd"; 接着Page_load, 然后在运行触发事件方法。
即asp.net常被人们成为无状态
{
public string abc="ddd";
protected void Page_Load(object sender, EventArgs e)
{
if (!IsPostBack)
{
abc = "43";
}
}
protected void Button1_Click(object sender, EventArgs e)
{
if (abc == null)
{
abc = "null before";
}
else if (abc == "ddd")
{
abc = "初始值";
}
}
}
--------------
静态成员变量,从不同的IP访问该网页,该成员变量是被共享的(即某个网友改变了该变量,另一个网友将得到的是改变后的变量)
而且就算关闭网页,变量还是驻留
在内存,第二次访问的时候还存在最后一次所赋予的值,除非重新编译。
-------
winform就不同了。
winForm是有状态的,而且运行多个项目程序是不会产生冲突的。
所以定义静态成员变量不会有什么问题。