-
ASP.NET中的Static变量
今天在看到禁止在页面中使用static变量一文及其评论中关于对ASP.NET中static变量的探讨,觉得并没有涉及static的实质 — 什么是static。
ASP.NET和C++中的static并没有多少不同,实质上他们都是在编译期就已存在的地址空间。换句话说,在你Build成功之后,项目的DLL文件中已经存在了这个static变量(或者类)的空间,亦即在你运行时系统载入DLL后这个变量/类的所谓实例已经存在,而且是应用程序所公用,所以你才可以直接使用,同时所有的页面用的都是同一块空间。
普通的类你需要new一个instance才可以使用,原因就在于应用程序中间只有声明而没有定义,new的时候就在堆里划分一块空间给他的一个实例。
一个简单的实验,大家就很容易的明白他们之间的区别:新建个简单的project,添加一个类,类增加一个变量,编译,记录dll文件的大小;然后把变量变成static的(当然你的class也必须成为static的了,想想这是为什么),编译,记录dll文件大小;比较两个dll大小,是不是后面一个比前面大呢?:)
-
相关阅读:
NetScaler ‘Counters’ Grab-Bag!
NetScaler + Wireshark = A Perfect Combination!
What’s That NetScaler Reset Packet?
Give NetScaler a “Tune-Up”
51Nod 1080 两个数的平方和(数论,经典题)
51Nod 1289 大鱼吃小鱼(模拟,经典好题)
1082 与7无关的数(思维题,巨坑)
51Nod 1003 阶乘后面0的数量(数学,思维题)
2017广东工业大学程序设计竞赛决赛 题解&源码(A,数学解方程,B,贪心博弈,C,递归,D,水,E,贪心,面试题,F,贪心,枚举,LCA,G,dp,记忆化搜索,H,思维题)
后缀数组(一堆干货)
-
原文地址:https://www.cnblogs.com/Samuel/p/7545.html
Copyright © 2020-2023
润新知