zoukankan
html css js c++ java
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大小,是不是后面一个比前面大呢?:)
查看全文
相关阅读:
cocos2d-x 团队碰面有感
2014年3月份 月会
2014年特种兵训练营感想
web 的简单框架
【实用小技巧】virtual box 虚拟机复制
flash的Socket通讯沙箱和安全策略问题
Codeforces Round #237 (Div. 2)
类的静态常量数组初始化
关于自己的成长计划
Android
原文地址:https://www.cnblogs.com/Samuel/p/7545.html
最新文章
ruby编程语言-学习笔记4(第4章 表达式和操作符)
__cdecl、__stdcall、__fastcall、thiscall 进栈、出栈区别
windows API中的各种字符串的本质
安全delete,添加refenerce,release
纯虚函数与虚函数
网络抓包工具,爬虫开发
ruby编程语言-学习笔记3(第4章 表达式和操作符)
ruby编程语言-学习笔记2(第4章 表达式和操作符)
ruby编程语言-学习笔记1
Tomcat之Web站点部署
热门文章
Tomcat安装JPress
CentOS系统中Tomcat安装配置
CentOS7下Tomcat启动慢的原因及解决方案
阿里云ECS云服务器编译安装PHP遇到virtual memory exhausted: Cannot allocate memory
Docker配置daocloud加速器
Docker配置阿里云加速地址
Docker镜像的获取和推送
Dockerfile构建镜像
Dockerfile常用指令
算法小记
Copyright © 2011-2022 走看看