当前位置:首页 > Windows程序 > 正文

C# 基础之Static(通俗解释)

2021-05-25 Windows程序

对于这个东西在学校里只知道用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 一直存在内存中,直到程序结束它才消失,所以页面刷新,它也一直存在。

温馨提示: 本文由Jm博客推荐,转载请保留链接: https://www.jmwww.net/file/71018.html