定义一个全局变量设初值为20,在page_load里面给其赋值为50,在别的按钮事件里面引用还是为20,怎么回事?

来源:互联网 发布:石原里美长相 知乎 编辑:程序博客网 时间:2024/04/29 19:22

定义一个变量设初值为20,在page_load里面给其赋值为50,在别的按钮事件里面引用还是为20,怎么回事?

public partial class Default2 : System.Web.UI.Page{    string str = "20";    protected void Page_Load(object sender, EventArgs e)    {        if (!Page.IsPostBack)        {            str = "50";            Response.Write(str);//输出50            bind();        }    }    protected void Btn_cx_Click(object sender, EventArgs e)    {        Response.Write(str);//输出20    }    protected void bind()    {        Response.Write(str);//输出50    }}

打开网页时:

1、给str变量赋值为20

2、运行Page_Load方法

      因为是第一次加载,执行

      str = "50";
      Response.Write(str);//输出50
      bind();

3、释放str变量



点击按钮时:

1、给str变量赋值为20

2、运行Page_Load方法

      因为是第二次加载,不执行

      str = "50";
      Response.Write(str);//输出50
      bind();

3、运行Btn_cx_Click方法

4、释放str变量

     



由于web的特性,他的生命周期很短,当页面呈现出来的时候也就结束了,下次再执行的时候又是新的请求,新的变量