C# 小弟我给变量赋值了,但是到后面计算的时候却又变成了初始值。为什么

C# 我给变量赋值了,但是到后面计算的时候却又变成了初始值。为什么?
using System;
using System.Collections.Generic;
using System.Linq;
using System.Web;
using System.Web.UI;
using System.Web.UI.WebControls;
using System.Web.Services;

public partial class calculator : System.Web.UI.Page
{
    protected void Page_Load(object sender, EventArgs e)
    {

    }
    double x =0;
    int pos = 0;
    public void addNum(int num)
    {
        TextBox1.Text = TextBox1.Text + num.ToString();
    }
   
    protected void Button1_Click(object sender, EventArgs e)
    {
        addNum(1);
    }
    protected void Button2_Click(object sender, EventArgs e)
    {
        addNum(2);
    }
    protected void Button3_Click(object sender, EventArgs e)
    {
        addNum(3);
    }
    protected void Button4_Click(object sender, EventArgs e)
    {
        addNum(4);
    }
    protected void Button5_Click(object sender, EventArgs e)
    {
        addNum(5);
    }
    protected void Button6_Click(object sender, EventArgs e)
    {
        addNum(6);
    }
    protected void Button7_Click(object sender, EventArgs e)
    {
        addNum(7);
    }
    protected void Button8_Click(object sender, EventArgs e)
    {
        addNum(8);
    }
    protected void Button9_Click(object sender, EventArgs e)
    {
        addNum(9);
    }
    protected void Button10_Click(object sender, EventArgs e)
    {
        addNum(0);
    }

    protected void Button11_Click(object sender, EventArgs e)
    {
        pos = 1;
        x = Convert.ToInt64(TextBox1.Text);
        TextBox1.Text = "";
    }
    protected void Button12_Click(object sender, EventArgs e)
    {
        pos = 2;
        x = Convert.ToInt64(TextBox1.Text);
        TextBox1.Text = "";
    }
   

    protected void Button14_Click(object sender, EventArgs e)
    {
        pos = 3;
        x = Convert.ToInt64(TextBox1.Text);
        TextBox1.Text = "";
    }
    protected void Button15_Click(object sender, EventArgs e)
    {
        pos = 4;
         x = Convert.ToInt64(TextBox1.Text);
        TextBox1.Text = "";
    }
   
    protected void Button16_Click(object sender, EventArgs e)
    {
        double y = Convert.ToInt64(TextBox1.Text);
        localhost.calculator result = new localhost.calculator();
        if(pos==1)
        {
            TextBox1.Text = (result.sum(x, y)).ToString();
        }
        else if(pos==2)
        {
            TextBox1.Text = (result.sub(x, y)).ToString();
        }
        else if(pos==3)
 
        {
            TextBox1.Text = (result.mult(x, y)).ToString();
        }
        else 
        {
            TextBox1.Text = (result.div(x, y)).ToString();
             
        }
    }
    protected void Button13_Click(object sender, EventArgs e)
    {
        TextBox1.Text = "";
        pos = 0;
        x = 0;
    }
}
这是我的一段代码,求大神解答。
------解决思路----------------------
每当页面的生命周期开始时,创建页面对象,自然变量是初始值。而你之前赋值的变量,随着前一个页面生命周期的(瞬间)结束,已经去了。