zoukankan      html  css  js  c++  java
  • aspx页中的静态变量的生命周期

    实际上aspx.cs也是一个标准的.net类,所以他的静态资源和普通类没有什么不通

     静态资源在首次访问时会调用静态构造器创建类类型对象(静态属于类,动态属于对象,静态被静态构造器创建,动态被普通构造创建,所以实例对象的时候,静态不会被重新构造),类型对象的生存周期是整个应用程序域的生存周期,也就说被访问过的静态资源,只有它所在的应用程序域被卸载时才会被卸载。

    也就是说,当页面第一次被访问的时候,相当于页面被构造,静态变量被静态构造器初始化,然后再次访问这个页面的时候,虽然非静态资源重新被构造,但是此时静态资源并不被重新构造并一直存在(也可以用来做页面状态保持,不过不建议用,因为一直占用资源,不像session还定时被回收),直至应用程序域被回收。

    当然,如果是application级的,用静态变量来代替application对象是可以的,优点是速度快(存储区域不同,而且不用装箱拆箱),缺点是没有application对象通用(application对象可以随意存储任何对象)

    通俗点说,就是页面的静态变量页面第一次被访问时被初始化,在应用程序域一直保存,动态变量只在一个http请求作用(每次http请求相当于实例一次页面这个类)

    静态变量在静态存储区内分配存储单元。在程序整个运行期间都不释放。而变量属于动态存储类别,存储在动态存储区空间(而不是静态存储区空间),函数调用结束后即释放。

    C# 并不支持 C/C++ 中的静态局部变量,C# 中的 static 只能用于类型和成员。

  • 相关阅读:
    VVDocumenter升级后不能使用问题
    IOS APP结构思路
    statusbar 样式
    在framework中打包xib
    百度地图类参考整理
    UIView的layoutSubviews和drawRect方法何时调用
    写给喜欢用Block的朋友(ios Block)
    启动动画
    navigationcontroller剖析
    消息模式Toast.makeText的几种常见用法
  • 原文地址:https://www.cnblogs.com/cuihongyu3503319/p/1361747.html
Copyright © 2011-2022 走看看