首先要明确:
静态变量 用static表示,表达的意思是:
1.静态变量由类名访问,因为它是属于类的,而不是某个变量的。
2.静态变量由其所在的类生成的所有对象共同维护,谁都可以改变或获取它的值,但绝对不会重新声明。
第一个程序:
1.string user_no = "No";// 注意这句 2.protected void LinkButton1_Click(object sender, EventArgs e) { user_no = "Yes"; } 3. protected void Button2_Click(object sender, EventArgs e) { Label1.Text = user_no; }
在aspx.cs中执行如上代码(先 LinkButton1_Click 再 Button2_Click)后,Label1显示的值是"No"而不是"Yes",但是在第一句前加上static后就显示"Yes"了 ;
自认为,点击两个按钮后生成page类两个对象,有各自的user_no,初始化为"No",当加上static后,变为静态变量,
所有对象共同维护一个拷贝。
第二个程序:
string sql = "select food_id,name,picture,shop_id,price,sale from food order by food_id asc "; protected void Button1_Click(object sender, EventArgs e) { sql = "select food_id,name,picture,shop_id,price,sale from food order by price asc "; GridView1.DataSource = getData(); GridView1.DataBind(); }
这样就不会出现上面的问题了,因为只有一个对象哦···