成人免费xxxxx在线视频软件_久久精品久久久_亚洲国产精品久久久_天天色天天色_亚洲人成一区_欧美一级欧美三级在线观看

ASP.NET:所有實例共享一個static變量

開發(fā) 后端
本文介紹了static變量的作用域,所有的客戶端訪問到的asp.net頁面中static變量都是同一個變量。

在C#中,static變量表示該變量屬于類,而不是類的實例??梢哉f是該類的所有實例共享一個static變量。

asp.net的頁面就是一個類,我們訪問一個頁面。就會在服務器上實例化一個該類的實例,來響應我們的請求。“所有實例共享一個static變量” 這就意味著,所有的客戶端訪問到的asp.net頁面中static變量都是同一個變量。

由于我們每次訪問asp.net頁面都是一個全新的對象,而不是我們上一次訪問的對象。所以上次頁面訪問時我們對頁面中變量的改動都沒有保留。遇到這個問題的時候,很多初學者的直覺就是將這個變量申明為static,自己在測試的時候發(fā)現(xiàn)還真的保留住了頁面的狀態(tài)。竊喜之余沒有發(fā)現(xiàn)這又有引入了另外一個錯誤。因為你要的只是頁面能保留住狀態(tài),而這個狀態(tài)是針對一個客戶端的(session的效果)。而得到的結(jié)果是只要一個客戶端改變了該值所有的其他客戶端都受到了影響(如同Applicatin的效果)。這種情況下,需要的極有可能就是個ViewState或者是Session。

Application與static變量

Application是通過一個集合保存所有的對象。

強類型:Application中保存的是object,對對象的保存和使用需要作cast動作。對于值類型更需要Box&UnBox。對性能的影響較大。而static變量是強類型的對象。

線程同步:Application將所有的對象放到一個集合,這樣對訪問集合中的任何對象都會鎖定這個集合。假如有Application["A"]、Application["B"]、Application["C"],有線程訪問Application["A"]其他線程不能訪問Application["B"] and Application["C"]。

而static變量,可以根據(jù)他們的作用分別放在不同的class當中。這樣可以并行訪問不同的static變量,而不存在線程安全問題。

友情提示:

1. 對static變量,做lock時。可以通過lock(typeof(classname))來鎖定該變量所在的類的類型,達到線程同步的目的。

2. 由于Aplication,static member是全局變量,而我們是在多線程服務器環(huán)境寫程序,對他們的使用需要注意線程安全的問題。

asp.net和C++中的static并沒有多少不同,實質(zhì)上他們都是在編譯期就已存在的地址空間。換句話說,在你Build成功之后,項目的DLL文件中已經(jīng)存在了這個static變量(或者類)的空間,亦即在你運行時系統(tǒng)載入DLL后這個變量/類的所謂實例已經(jīng)存在,而且是應用程序所公用,所以你才可以直接使用,同時所有的頁面用的都是同一塊空間。

普通的類你需要new一個instance才可以使用,原因就在于應用程序中間只有聲明而沒有定義,new的時候就在堆里劃分一塊空間給他的一個實例。

一個簡單的實驗,大家就很容易的明白他們之間的區(qū)別:新建個簡單的project,添加一個類,類增加一個變量,編譯,記錄dll文件的大??;然后把變量變成static變量(當然你的class也必須成為static的了,想想這是為什么),編譯,記錄dll文件大??;比較兩個dll大小,是不是后面一個比前面大呢?

【編輯推薦】

  1. ASP.NET數(shù)組基礎(chǔ):聲明,表示及范例
  2. ASP.NET編程中的十大技巧(二)
  3. ASP.NET編程中的十大技巧(一)
  4. ASP.NET MVC教程(一):準備工作
  5. ASP.NET MVC Beta的部署問題

責任編輯:book05 來源: 百度空間
相關(guān)推薦

2010-01-26 13:15:42

ASP.NET MVC

2009-07-23 16:44:50

XML Web服務使用ASP.NET構(gòu)造

2009-09-03 16:27:57

ASP.NET回車事件

2011-07-12 16:07:42

OracleToad環(huán)境變量

2012-08-27 10:11:43

ASP.NET

2009-08-04 16:24:19

合格的ASP.NET程

2009-07-22 17:45:35

ASP.NET教程

2009-08-03 14:22:33

什么是ASP.NET

2009-07-28 17:17:19

ASP.NET概述

2009-09-09 22:53:34

ASP.NET 時間控

2009-07-24 15:07:56

ASP.NET上傳文件

2009-07-29 15:55:48

ASP.NET Req

2009-04-23 09:42:39

FubuMVCASP.NET MVCMVC

2011-10-11 09:43:15

ASP.NET MVC

2009-06-19 09:34:20

WCF基本架構(gòu)ASP.NET

2009-07-27 12:22:03

ASP.NET和ASPASP.NET入門教程

2009-09-11 09:18:17

ASP.NET MVC

2011-12-20 10:02:01

ASP.NET

2009-07-30 13:57:39

ASP.NET水晶報表ASP.NET

2011-04-08 10:15:11

點贊
收藏

51CTO技術(shù)棧公眾號

主站蜘蛛池模板: 久久久久久蜜桃一区二区 | 亚洲精品久久久蜜桃 | 成人av高清 | 亚洲精品视频免费看 | 亚洲综合成人网 | 国产成人啪免费观看软件 | 亚洲国产欧美日韩 | 欧美三级在线 | 看一级毛片视频 | 少妇一区二区三区 | 欧美日韩国产一区二区三区 | 日韩精品亚洲专区在线观看 | 日韩小视频在线 | 国产欧美日韩精品一区二区三区 | 亚洲一级视频在线 | 国产综合在线视频 | 成人在线不卡 | 欧美一级片在线播放 | 久久久久网站 | 欧美成人在线免费 | 久久精品无码一区二区三区 | 在线观看中文字幕 | 91在线电影| 国产小视频精品 | 夜夜操操操 | 中文字幕人成乱码在线观看 | 欧美激情在线精品一区二区三区 | 欧美中文字幕一区二区三区亚洲 | 亚洲精品一区在线观看 | 日韩影院一区 | 99re在线视频 | 99热在线播放| 亚洲欧美在线一区 | 一级毛片在线视频 | 久久久久久久久综合 | 国产一区二区三区四区在线观看 | 精品亚洲91 | av国产精品 | 亚洲国产成人在线视频 | 成人h视频| av在线免费观看网址 |