码迷,mamicode.com
首页 > Windows程序 > 详细

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

时间:2015-06-11 20:53:42      阅读:172      评论:0      收藏:0      [点我收藏+]

标签:

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

 

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

标签:

原文地址:http://www.cnblogs.com/hamburger/p/4569954.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!