校园春色亚洲色图_亚洲视频分类_中文字幕精品一区二区精品_麻豆一区区三区四区产品精品蜜桃

主頁 > 知識庫 > Asp.net中static變量和viewstate的使用方法(謹(jǐn)慎)

Asp.net中static變量和viewstate的使用方法(謹(jǐn)慎)

熱門標(biāo)簽:申請400電話手續(xù) 合肥電銷外呼系統(tǒng)哪家公司做的好 同安公安400電話怎么申請流程 玉林市機(jī)器人外呼系統(tǒng)哪家好 南陽外呼系統(tǒng)定制化 預(yù)測式外呼系統(tǒng)使用說明 百度ai地圖標(biāo)注 電話機(jī)器人軟件銷售工作 蘋果手機(jī)凱立德地圖標(biāo)注

在.Net平臺下進(jìn)行CS軟件開發(fā)時,我們經(jīng)常遇到以后還要用到某些變量上次修改后的值,為了簡單起見,很多人都習(xí)慣用static來定義這些變量,我也是。這樣非常方便,下一次調(diào)用某個函數(shù)時該變量仍然保存的是處理過的值,直接拿來用就可以了。

現(xiàn)在轉(zhuǎn)入了BS軟件開發(fā),我們很自然地會沿用這種習(xí)慣。如在頁面中統(tǒng)計某個按鈕被按下的次數(shù),先在類中OnClick事件的處理過程前定義一static變量times,則每次調(diào)用該按鈕的OnClick事件時,令times增1即可,非常方便:
[C#]:

復(fù)制代碼 代碼如下:

...
static int times=0;
...
private void Button1_Click(object sender,EventArgs e)
{
times++;
Label1.Text=times.ToString();
}

在我們慶幸如此方便之余,就未曾意識到我們已經(jīng)埋下了一棵難以察覺的定時炸彈。為什么哪?
這還要從Asp.net的運(yùn)行機(jī)制談起。在CS模式軟件開發(fā)過程中,我們通常不會關(guān)心應(yīng)用程序是在哪里運(yùn)行的,變量存放在哪里,客戶端程序就運(yùn)行在客戶端,服務(wù)器端程序就運(yùn)行在服務(wù)器端,一般情況下,二者除了數(shù)據(jù)庫中的數(shù)據(jù)外基本沒有其他共享的東西。所以這時客戶端的用戶大可放心的使用static變量,因為它們就存放在客戶端程序中。

于是我們就習(xí)慣的在做BS模式的頁面時也用static變量,殊不知Asp.net中的static已不同于CS中的static。原因很簡單,就是因為在Asp.net中所有的用戶將使用同一個static變量。這就意味著每一個使用該頁面的用戶對該變量的操作將會影響到其他用戶。就拿上面計數(shù)器的例子來說,假設(shè)times初試值為0,因為此時只有我們自己在使用這個頁面,當(dāng)然不會有什么問題,但如果有兩個人同時連接到這個頁面,如果A單擊了Button1一次,則B刷新頁面后Label1將顯示1,如果B再單擊Button1一次,則times變成2,兩個人刷新頁面后就出現(xiàn)問題了:A和B都會說,我明明只單擊了Button1一次,怎么Label1就顯示我單擊了兩次哪?——這就是因為兩個人共用的是服務(wù)器上同一個times,任何一個人對times的操作都會在使用該頁面的他人的瀏覽器中表現(xiàn)出來。問題就出在這里。

怎么辦哪?還好,除了傳統(tǒng)的Asp中的Session對象外,Asp.net提供了一個更好的ViewState對象。ViewState對象用來保存頁面中的各種變量,甚至是對象。使用方法和HashTable類似,只要用變量名稱做索引,如ViewState["Var"],就可以用存取變量Var的值,而不管Var是普通變量,還是對象,甚至是內(nèi)存中的一張DataTable,太方便了。為什么可以用ViewState而不能用static變量哪?原因就是服務(wù)器端會為每個連接到該頁面的用戶分別建立一個ViewState,所以ViewState相當(dāng)于頁面級的Session。這下我們可以放心地使用ViewState來存取需要暫存的變量和對象了。
ViewState的用法很簡單,如下所示
1、保存變量到ViewState中:
ViewState["times"]=times;//存放普通變量times
ViewState["Orders"]=dtOrders;//存放DataTable型對象dtOrders
2、讀出ViewState中的值:
times=(int)ViewState["times"];
dtOrders=(DataTable)ViewState["Orders"];
看見了吧?就如此簡單!有的朋友會問讀出變量的值時為什么要進(jìn)行強(qiáng)制類型轉(zhuǎn)換?這是因為當(dāng)變量(不管是int型的普通變量times,還是DataTable型的對象dtOrders)被存放到ViewState中后,ViewState可不管你是普通變量還是對象,統(tǒng)統(tǒng)按Object來對待。所以當(dāng)我們?nèi)〕龃娣旁赩iewState中的東西時,一定要轉(zhuǎn)換成相應(yīng)的類型,否則就會報錯。而這一操作不用在用ViewState保存變量時進(jìn)行,系統(tǒng)會自動轉(zhuǎn)換。(注意ViewState括號中的字符串只是為了標(biāo)識不同變量的索引,用不著非要和變量同名)所以上面計數(shù)器的代碼應(yīng)該這樣寫才好:
復(fù)制代碼 代碼如下:

...
ViewState["times"]=0;
...
private void Button1_Click(object sender,EventArgs e)
{
int times=(int)ViewState["times"];
times++;
ViewState["times"]=times;
Label1.Text=times.ToString();
}

一般情況向下,將要保存到ViewState中的對象(或變量)用屬性的形式來實(shí)現(xiàn)會更方便。如對于上述的計數(shù)器times,可以這樣處理:
復(fù)制代碼 代碼如下:

...
private int times
{
get
{
return (int)ViewState["times"];
}
set
{
ViewState["times"]=value;
}
}
...
private void Button1_Click(object sender,EventArgs e)
{
times++;
Label1.Text=times.ToString();
}
...

在這里times將當(dāng)作私有屬性來操作,是不是非常方便?
那是不是說static型變量就沒用了哪?當(dāng)然不是!在C#中用static聲明的類不用實(shí)例化直接使用。正是由于所有用戶共享服務(wù)器端的同一個static變量,所以可以用static型對象來存取一些公用的處理模塊,比如類型轉(zhuǎn)換、變量驗證等工作。所以要根據(jù)具體情況而定。

還有一點(diǎn)需要注意:如果在頁面中多個過程要共享一個對象或變量,我們在頁面類的開始部分定義一個頁面級的全局變量是不行的,static本來可以,但上面說了這種類型的變量不安全,所以這時就可以用ViewState。

好了,這下我們可以放心的暫存某些變量或?qū)ο罅恕?/P>
您可能感興趣的文章:
  • ASP.NET內(nèi)置對象之Application對象
  • Asp.Net Cache緩存使用代碼
  • asp.net 去除viewstate
  • asp.net 禁用viewstate在web.config里
  • Application,Session,Cookies對象應(yīng)用介紹
  • asp.net中的cookie使用介紹
  • asp.net Cookie值中文亂碼問題解決方法
  • asp.net中Session緩存與Cache緩存的區(qū)別分析
  • ASP.NET之Response.Cookies.Remove 無法刪除COOKIE的原因
  • ASP.NET中在一般處理程序中使用session的簡單介紹
  • ASP.NET中application對象的使用介紹
  • ASP.NET 使用application與session對象寫的簡單聊天室程序
  • ASP.NET中的Cache使用介紹
  • asp.net中ViewState的用法詳解
  • ASP.NET中Application、Cookie、Session、Cache和ViewState

標(biāo)簽:淄博 南昌 南京 揚(yáng)州 南京 嘉興 臺州 海南

巨人網(wǎng)絡(luò)通訊聲明:本文標(biāo)題《Asp.net中static變量和viewstate的使用方法(謹(jǐn)慎)》,本文關(guān)鍵詞  Asp.net,中,static,變量,和,;如發(fā)現(xiàn)本文內(nèi)容存在版權(quán)問題,煩請?zhí)峁┫嚓P(guān)信息告之我們,我們將及時溝通與處理。本站內(nèi)容系統(tǒng)采集于網(wǎng)絡(luò),涉及言論、版權(quán)與本站無關(guān)。
  • 相關(guān)文章
  • 下面列出與本文章《Asp.net中static變量和viewstate的使用方法(謹(jǐn)慎)》相關(guān)的同類信息!
  • 本頁收集關(guān)于Asp.net中static變量和viewstate的使用方法(謹(jǐn)慎)的相關(guān)信息資訊供網(wǎng)民參考!
  • 推薦文章
    校园春色亚洲色图_亚洲视频分类_中文字幕精品一区二区精品_麻豆一区区三区四区产品精品蜜桃
    国产经典欧美精品| 激情综合一区二区三区| 日韩午夜电影在线观看| 国产成人午夜99999| 亚洲综合在线视频| 久久久亚洲欧洲日产国码αv| 一本大道久久a久久精二百| 久久99久国产精品黄毛片色诱| 亚洲欧美另类在线| 亚洲精品在线免费播放| 91精品国产一区二区三区| 91女人视频在线观看| 久久精品国产亚洲高清剧情介绍| 亚洲欧美另类图片小说| 国产片一区二区三区| 欧美大度的电影原声| 91麻豆精品国产91久久久| 色哟哟一区二区在线观看| 成人永久看片免费视频天堂| 国产综合色精品一区二区三区| 日韩影院在线观看| 午夜一区二区三区视频| 亚洲私人黄色宅男| 国产精品免费免费| 久久久久97国产精华液好用吗| 日韩美一区二区三区| 91精品国产高清一区二区三区蜜臀 | 亚洲国产精品精华液ab| 精品免费99久久| 日韩视频在线一区二区| 欧美日韩国产a| 欧美午夜电影网| 欧美亚洲禁片免费| 欧美午夜片在线观看| 在线观看一区日韩| 欧美性色aⅴ视频一区日韩精品| 一本大道久久a久久综合| 一本一道综合狠狠老| 91伊人久久大香线蕉| 91亚洲精品乱码久久久久久蜜桃| 成人午夜大片免费观看| 成人午夜在线播放| 成人免费不卡视频| 99国产精品久久久| 91欧美一区二区| 欧美性视频一区二区三区| 欧美日韩国产一区| 91麻豆精品国产91久久久久久| 这里只有精品视频在线观看| 欧美一卡二卡三卡四卡| 欧美成人三级电影在线| 久久久久国产精品免费免费搜索| 久久精品无码一区二区三区| 国产精品三级av在线播放| 综合久久综合久久| 亚洲综合激情另类小说区| 亚洲va欧美va人人爽午夜| 日本亚洲免费观看| 国产一区福利在线| 国产91色综合久久免费分享| 99久久综合国产精品| 在线亚洲免费视频| 6080亚洲精品一区二区| 日韩精品中文字幕在线不卡尤物 | 在线观看视频91| 7777精品伊人久久久大香线蕉的| 精品少妇一区二区三区日产乱码| 久久亚洲免费视频| 日韩一区在线播放| 亚洲3atv精品一区二区三区| 久久精品国产免费| 成人性生交大片免费看视频在线| 欧洲精品一区二区| 亚洲精品一区二区三区99| 国产精品毛片久久久久久久| 午夜久久福利影院| 国产ts人妖一区二区| 欧美三级午夜理伦三级中视频| 欧美大度的电影原声| 日韩美女视频19| 麻豆视频一区二区| 色老汉av一区二区三区| 日韩一区二区不卡| 亚洲欧洲性图库| 九九**精品视频免费播放| av午夜一区麻豆| 日韩三级中文字幕| 亚洲视频在线一区| 精品一区二区三区在线播放视频| 色综合色综合色综合色综合色综合| 91精品国产色综合久久ai换脸| 成人欧美一区二区三区视频网页| 婷婷综合另类小说色区| 成人av电影在线| 亚洲精品在线免费观看视频| 亚洲电影在线免费观看| 国产成人综合亚洲网站| 欧美电影影音先锋| 亚洲人123区| 国产成人亚洲精品狼色在线| 91麻豆精品国产91久久久资源速度| 亚洲欧洲国产专区| 国产一区二区三区在线观看免费 | 国产精品久久久久久久第一福利| 日本不卡视频在线| 欧美性大战久久久久久久蜜臀| 久久久久久久久久久黄色| 三级不卡在线观看| 91福利小视频| 亚洲欧美在线另类| 国产不卡免费视频| 久久免费国产精品| 欧美a级理论片| 欧美日韩国产精选| 亚洲在线观看免费| 一本到不卡精品视频在线观看| 精品国产青草久久久久福利| 五月激情综合婷婷| 欧美日韩久久不卡| 一区二区成人在线视频| av日韩在线网站| 国产精品每日更新在线播放网址| 国产精品一区二区果冻传媒| 日韩一二三区不卡| 视频一区二区三区中文字幕| 欧美日韩免费电影| 天天综合日日夜夜精品| 欧美视频在线播放| 亚洲国产精品视频| 欧洲av在线精品| 一区二区三区鲁丝不卡| 欧美综合视频在线观看| 亚洲另类在线制服丝袜| 色美美综合视频| 亚洲精品中文在线| 欧美天天综合网| 亚洲福利视频三区| 欧美日韩高清一区二区三区| 性做久久久久久免费观看欧美| 欧美日韩亚洲综合一区二区三区| 亚洲福利视频导航| 7777精品伊人久久久大香线蕉| 日韩 欧美一区二区三区| 欧美一区二区三区视频在线 | 欧美成人免费网站| 国产乱码字幕精品高清av | 久久综合色播五月| 国产精品18久久久久久久网站| 久久精品亚洲乱码伦伦中文 | 91官网在线免费观看| 亚洲一区二区欧美| 欧美狂野另类xxxxoooo| 蜜桃av噜噜一区二区三区小说| 欧美大片一区二区三区| 福利一区福利二区| 亚洲靠逼com| 在线不卡中文字幕播放| 激情文学综合插| 国产精品久久久久久久久免费樱桃| av电影一区二区| 亚洲综合在线第一页| 日韩精品中文字幕一区二区三区 | 国内一区二区视频| 国产精品久久久久婷婷| 欧美伊人久久大香线蕉综合69| 奇米影视在线99精品| 26uuu国产一区二区三区| 成人高清视频在线观看| 亚洲欧美激情小说另类| 3d动漫精品啪啪| 国产精品 欧美精品| 亚洲午夜精品一区二区三区他趣| 日韩美女一区二区三区四区| 播五月开心婷婷综合| 午夜精品久久久久影视| 精品sm在线观看| 91久久一区二区| 热久久久久久久| 国产精品久久久一区麻豆最新章节| 欧美亚洲综合网| 国产高清在线观看免费不卡| 亚洲精品菠萝久久久久久久| 精品久久久网站| 色老汉一区二区三区| 国产精品影视在线| 亚洲一区视频在线观看视频| 久久久久久久久久久黄色| 欧美色网站导航| 成人精品在线视频观看| 日本欧美一区二区三区| 亚洲天堂成人网| 久久久久久久免费视频了| 欧美日韩免费不卡视频一区二区三区| 国产精品18久久久久久久久久久久 | 怡红院av一区二区三区| 精品久久人人做人人爱| 欧美色网一区二区| 91在线精品一区二区三区| 经典三级在线一区| 三级欧美韩日大片在线看|