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大小,是不是后面一个比前面大呢?:)
查看全文
相关阅读:
Maven setting配置镜像仓库
MyBatis配置Mapping,JavaType和JDBCType的对应关系,#与$区别
Git常用命令
Js JSON.stringify()与JSON.parse()与eval()详解及使用案例
例:判断是不是自有属性hasOwnProperty方法
JS中原型链中的prototype与_proto_的个人理解与详细总结
原型理解:prototype
JS中attribute和property的区别
面试题术语
函数语法
原文地址:https://www.cnblogs.com/Samuel/p/7545.html
最新文章
phpcms调用某个栏目下的所有二级栏目
phpcms导航中添加内部链接
phpcms访问顶级栏目,自动跳到第一个子栏目
图像风格迁移(Pytorch)
用CNN对CIFAR10进行分类(pytorch)
torch.view()详解及-1参数是什么意思
Jupyter Notebook不能在系统命令行里全局启动
如何用Electron Js创建第一个应用Hello World
fast-ai lesson1 错误处理(CNN创建)
fast ai-lesson 1 报错解决方法(正则表达式提取文件名)
热门文章
Linux系统中硬链接和软链接(符号链接)的区别
Linux(Ubuntu)换apt-get源
Node.js修改全局安装默认路径
SSH框架总结(环境搭建+框架分析+实例源码下载)
Java开发各层对象专用名词含义 PO,VO,DAO,BO,DTO,POJO, BYO,Entity,JavaBean,JavaBeans
SpringMVC 注解详解
Windows配置多个git用户
JavaScript 常用操作
Maven Project pom.xml属性解析
Java 问题集
Copyright © 2011-2022 走看看