鲨丁鱼.net技术小栈

这里讨论.net的web和form开发,还有其它关于WEB开发和安全的全部知识点,顺带一些经典的有意思的杂文!
  博客园  :: 首页  :: 新随笔  :: 联系 :: 订阅 订阅  :: 管理

ASP.NET中的Static变量

Posted on 2005-12-08 10:33  King0502  阅读(116)  评论(0编辑  收藏  举报
   今天在看到禁止在页面中使用static变量一文及其评论中关于对ASP.NET中static变量的探讨,觉得并没有涉及static的实质 — 什么是static。

    ASP.NET和C++中的static并没有多少不同,实质上他们都是在编译期就已存在的地址空间。换句话说,在你Build成功之后,项目的DLL文件中已经存在了这个static变量(或者类)的空间,亦即在你运行时系统载入DLL后这个变量/类的所谓实例已经存在,而且是应用程序所公用,所以你才可以直接使用,同时所有的页面用的都是同一块空间

   普通的类你需要new一个instance才可以使用,原因就在于应用程序中间只有声明而没有定义,new的时候就在堆里划分一块空间给他的一个实例。

   一个简单的实验,大家就很容易的明白他们之间的区别:新建个简单的project,添加一个类,类增加一个变量,编译,记录dll文件的大小;然后把变量变成static的(当然你的class也必须成为static的了,想想这是为什么),编译,记录dll文件大小;比较两个dll大小,是不是后面一个比前面大呢?:)


http://samuel.cnblogs.com/archive/2004/04/25/7545.html