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大小,是不是后面一个比前面大呢?:)
查看全文
相关阅读:
取时间
DEV控件属性
Dev之barManager控件属性
linq查询Contains
绑定
运算符转换方法组和int类型的操作数
学习计划实践
学习计划2
foreacht学习
Spring5源码分析(二) IOC 容器的初始化(五)
原文地址:https://www.cnblogs.com/Samuel/p/7545.html
最新文章
sublime text 2 快捷键
Linux对比文件,很好用的图形界面
windows去掉休眠功能
虚拟机类加载机制
计算机网络基础知识
ubuntu下关闭独立显卡
JVM垃圾收集器和内存分配侧策略
hadoop学习笔记-HDFS原理
给定一个整数N,那么N的阶乘N!末尾有多少个零呢?
给定两个正整数A和B,把A变成B需要几位?也就是说A和B之间的位数有多少个是不同的?
热门文章
python基础: 深入理解 python 中的赋值、引用、拷贝、作用域
双数组字典树(Double Array Trie)
时间序列数据库的秘密(3)——加载和分布式计算
时间序列数据库的秘密 (2)——索引
时间序列数据库的秘密(1)—— 介绍
集成学习算法——adaboost
在spark上构造随机森林模型过程的一点理解
对accuracy、precision、recall、F1-score、ROC-AUC、PRC-AUC的一些理解
linux系统中离线安装python3.7过程记录
spark-submit提交python脚本过程记录
Copyright © 2011-2022 走看看