对于这个东西在学校里只知道用Static声明的变量是类所拥有的,不用实例化,例如:
1 public class hehe 2 { 3 public static void drink() 4 { 5 //喝柠檬红茶 6 } 7 }
在有static修饰的情况下调用:
hehe.drink();
在没有static修饰的情况下调用:
hehe h=new hehe();
h.drink();
如你所见,上面的写法更方便,除了这个好处没了?当然还有,我是在做webform的时候发现一个问题
我要导入Excel到DataSet里,然后ds保存这些数据
DataSet ds=GetExcelxxxxxxxxxxxxxxxx();
然后点击按钮【列出数据】把ds循环输出,
再点击按钮【导入数据】循环ds插入数据库,但是在这个过程中发现,在点击【导入数据】的时候ds没了,报错ds未实例化。
后来知道原来点击【列出数据】按钮时,页面刷新了,所以变量都是空的,才报错未实例化,因为它就没有值了。这涉及到生命周期的问题,想了解可以去百度看看,本人菜鸟一个,所以高深的东西不了解,只能说说简单的东西了。。。。。。。
有什么办法在页面刷新的情况下还能保存值下来?
第一:定义一个static修饰的变量,例如声明这个ds的时候:static DataSet ds=new DataSet();
第二:使用一个Session来保存,例如在页面刷新前赋值:Session["ds"]=ds;取值的时候再把它转换出来。
static 一直存在内存中,直到程序结束它才消失,所以页面刷新,它也一直存在。
时间: 2025-01-02 16:07:15