經(jīng)過長時間學(xué)習(xí)VB NET局部靜態(tài)變量 于是和大家分享一下 看完本文你肯定有不少收獲 希望本文能教會你更多東西 VB NET能夠?qū)崿F(xiàn)很多C#不能做到的功能 如When語句 Optional參數(shù) 局部Static變量 對象實例訪問靜態(tài)方法 Handles綁定事件 On Error處理異常 Object直接后期綁定等等 VB和C#同屬 NET的語言 編譯出來的是同樣的CIL 但為什么VB支持很多有趣的特性呢 我們一起來探究一下VB NET局部靜態(tài)變量
讓客戶滿意是我們工作的目標,不斷超越客戶的期望值來自于我們對這個行業(yè)的熱愛。我們立志把好的技術(shù)通過有效、簡單的方式提供給客戶,將通過不懈努力成為客戶在信息化領(lǐng)域值得信任、有價值的長期合作伙伴,公司提供的服務(wù)項目有:國際域名空間、虛擬主機、營銷軟件、網(wǎng)站建設(shè)、蘆溪網(wǎng)站維護、網(wǎng)站推廣。
VB NET局部靜態(tài)變量
VB支持用Static關(guān)鍵字聲明局部變量 這樣在過程結(jié)束的時候可以保持變量的數(shù)值
Public?Sub?Test ()?Static?i?As?Integer?i?+=? ? 實現(xiàn)一個過程調(diào)用計數(shù)器?End?Sub
我們實現(xiàn)了一個簡單的過程計數(shù)器 每調(diào)用一次Test 計數(shù)器的數(shù)值就增加 其實還有很多情況我們希望保持變量的數(shù)值 而C#的static是不能用在過程內(nèi)部的 因此要實現(xiàn)過程計數(shù)器 我們必須聲明一個類級別的變量 這樣做明顯不如VB好 因為無法防止其他過程修改計數(shù)器變量 這就和對象封裝一個道理 本來應(yīng)該是一個方法的局部變量 現(xiàn)在我要被迫把它獨立出來 顯然是不好的設(shè)計 那么VB是怎么生成局部靜態(tài)變量的呢?將上述代碼返匯編 我們可以清楚地看到在VB生成的CIL中 i不是作為局部變量 而是作為類的Field出現(xiàn)的
field?private?specialname?int ?$STATIC$Test $ $i
也就是說 i被改名作為一個類的字段 但被冠以specialname 在代碼中試圖訪問$STATIC$Test $ $i是不可能的 因為它不是一個有效的標識符 但是在IL中 將這個變量加一的代碼卻與一般的類字段完全一樣 是通過ldfld加載的 我覺得這個方法十分聰明 把靜態(tài)變量變成生命周期一樣的類字段 但是又由編譯器來控制訪問的權(quán)限 讓它成為一個局部變量 同時也解釋了VB為什么要用兩個不同的關(guān)鍵字來聲明靜態(tài)變量—— Static和Shared
lishixinzhi/Article/program/net/201311/13413
VB.NET中的變量在使用前要進行聲明。即便不進行顯式聲明,VB也會進行隱式聲明。
本題中應(yīng)該這樣使用:
Dim a1 As String = TextBox1.Text
System.Diagnostics.Process.Start("IExplore.exe", a1)
變量是存儲值的名稱??墒褂米兞縼泶鎯?shù)字,例如建筑物的高度,或者存儲單詞,例如人的名字。簡單地說,可使用變量表示程序所需的任何信息。
你可能會問:“既然我可以使用信息,為什么要用變量?” 正如其名稱所表示的,變量可以隨著程序的運行而改變其表示的值。例如,您可以寫一個程序來跟蹤桌子上罐里的軟心豆粒糖的數(shù)目。因為糖是要被吃掉的,所以罐里軟心豆粒糖的數(shù)目可能會隨著時間的推移而改變。您可以使用一個可隨時間變化的變量來表示軟心豆粒糖的數(shù)目,而無需在每次想吃糖時重新編寫程序。
'用My.Computer.Registry
My.Computer.Registry.SetValue("HKEY_CURRENT_USER\Environment",?"變量名",?"變量值")
dim?變量值?as?string?=?My.Computer.Registry.GetValue("HKEY_CURRENT_USER\Environment",?"變量名",?"")?'獲取變量值
Imports ESRI.ArcGIS.Geodatabase
加在文件的開頭,這樣就會把IFeature 自動識別為ESRI.ArcGIS.Geodatabase.IFeature了。
ESRI.ArcGIS.Geodatabase是一個命名空間,里面有一個叫IFeature的類,ESRI.ArcGIS.Geodatabase.IFeature就是指這個類。如果你只寫IFeature的話,編譯系統(tǒng)就會認為你要用當前命名空間里的IFeature類,但它找不到這個叫IFeature的類,所以就會報錯。
Imports就有這個功能,只寫一遍命名空間名稱,以后不用寫命名空間名稱就可以直接使用里面的各種類、常量、變量等等。
標題名稱:vb.net系統(tǒng)變量 vb程序變量
標題來源:http://m.rwnh.cn/article24/doopoce.html
成都網(wǎng)站建設(shè)公司_創(chuàng)新互聯(lián),為您提供營銷型網(wǎng)站建設(shè)、云服務(wù)器、網(wǎng)站收錄、App開發(fā)、外貿(mào)網(wǎng)站建設(shè)、ChatGPT
聲明:本網(wǎng)站發(fā)布的內(nèi)容(圖片、視頻和文字)以用戶投稿、用戶轉(zhuǎn)載內(nèi)容為主,如果涉及侵權(quán)請盡快告知,我們將會在第一時間刪除。文章觀點不代表本網(wǎng)站立場,如需處理請聯(lián)系客服。電話:028-86922220;郵箱:631063699@qq.com。內(nèi)容未經(jīng)允許不得轉(zhuǎn)載,或轉(zhuǎn)載時需注明來源: 創(chuàng)新互聯(lián)