vb.net的變量。本站提示廣大學習愛好者:(vb.net的變量)文章只能為提供參考,不一定能成為您想要的結果。以下是vb.net的變量正文
在Visual Basic執行使用順序時期,用變量暫時存儲數值。變量具有名字(用來援用變量所包括的值的詞)和數據類型(確定變量可以存儲的數據的品種)。可以把變量看作內存中寄存未知值的所在處。例如,假定正在為水果命鋪編一個銷售蘋果的順序。在銷售實踐發作之前並不知道蘋果的價錢和銷量。此時,可以設計兩個變量來保管未知數,將它們命名為“ApplePrice”和“ApplesSold”。每次運轉順序時,用戶就這兩個變量提供詳細值。為了計算總的銷售額,並且將後果顯示在名叫“txtSales”的文本框中,代碼應該是這樣的:
txtSales.txt=ApplePrice*ApplesSold
每次依據用戶提供的數值,這個表達式前往不同的金額。由於有了變量,就可以設計一個算式,而不用事前知道實踐的輸出是多少。在這個例子中,“ApplePrice”的數據類型是十進制型,而“ApplesSold”的數據類型是整數。變量還可以表示許多其他數值,比方:存儲文本數值、日期、各種數值類型,甚至對象也包括在內。
1.存儲和檢索變量中的數據
用賦值語句停止計算,並將後果賦予變量:
ApplesSold=10 '將值10傳給變量
ApplesSold=ApplesSold+1 '變量值增一
留意:例子中的等號是賦值符,不是等於操作符,它將數值10賦予變量ApplesSold。
2.聲明變量
聲明變量就是事前將變量告訴順序。要用“Dim”語句來聲明變量,“Dim”語句提供了變量名:
Dim Variablename As Type
在進程外部用“Dim”語句聲明的變量,只要在該進程執行時才存在。進程一完畢,存儲該變量的內存空間也就釋放了。此外,進程中的變量值對進程來說是部分的,也就是說,無法在一個進程中訪問另一個進程中的變量。由於這些特點,在不同進程中就可運用相反的變量名,而不用擔憂抵觸發作以及編譯時呈現錯誤。
變量名有以下命名准繩:
·必需以字母掃尾
·不能包括嵌入的(英文)句號或許嵌入的類型聲明字符
·不得超越255個字符
·在同一個范圍內必需是唯一的
范圍就是可以援用變量的域,如一個進程、一個函數等。由於“Dim”語句中的可選的“As Type”子句,可以定義被聲明變量的數據類型或對象類型。數據類型定義了變量所存儲信息的類型。變量也可以包括來自Visual Basic或其他使用順序的對象,如“Form”和“TextBox”等。
留意:“As Type”在默許的狀況下是必寫的,假如要將“As Type”變成可選的,則需將工程屬性頁中的“Build”選項中“Option strict”設置為“Off”,這樣在沒有“As Type”的變量聲明中,“Object”類型是其默許的數據類型。
(1).隱式聲明
將工程屬性頁中的“Build”選項中“Option strict”設置為“Off”,則工程中便允許陷式聲明,即在運用一個變量之前並不用先聲明這個變量。例如,可以書寫這樣一個函數,在其中就不用在運用變量TempVal之前先聲明它:
Function SafeSqr(num)
TempVal=Abs(num)
SafeSqr=Sqr(TempVal)
End Function
Visual Basic用這個名字自動創立一個變量,運用此變量時,可以以為它就是聲明過的。雖然這種辦法很方便,但是假如把變量名拼錯了的話,會招致一個難以查找的錯誤。例如,假定這個函數寫成:
Function SafeSqr(num)
TempVal=Abs(num)
SafeSqr=Sqr(TemVal)
End Function
看起來,這兩段代碼好象是一樣的。但是由於在倒數第二行把“TempVal”變量名寫錯了,所以函數總是前往0。當Visual Basic遇到新名字,它分辯不出這是變量名寫錯了,於是用這個名字再創立一個新的變量。
(2).顯式聲明
為了防止寫錯變量名惹起的費事,可以規則,只需遇到一個未經明白聲明就當成變量的名字,Visual Basic都收回錯誤正告。要顯式聲明,只需將工程屬性頁中的“Build”選項中的“Option Explicit”設置為“on”即可。假如對包括“SafeSqr”函數的窗體或規范模塊執行該語句,那麼Visual Basic將認定“TempVal”和“Temval”都是未經聲明的變量,並為兩者都收回錯誤信息。隨後就可以顯式聲明“TempVal”:
Function SafeSqr(num)
Dim TempVal
TempVal=Abs(num)
SafeSqr=Sqr(TempVal)
End Function
由於Visual Basic對拼錯了的“TemVal”顯示錯誤信息,所以可以立即明白是什麼問題。由於“Option Explicit”有助於編譯零碎的出錯處置,所以普通來說在編寫代碼之前要將其設置為“on”.
3.了解變量的范圍
變量的范圍確定了可以訪問該變量存在的那局部代碼。在一個進程外部聲明變量時,只要進程外部的代碼才干訪問或改動那個變量的值;它有一個范圍,對該進程來說是部分的。但是,有時需求運用具有更大范圍的變量,例如這樣一個變量,其值關於同一模塊內的一切進程都無效,甚至關於整個使用順序的一切進程都無效。Visual Basic允許在聲明變量時指定它的范圍。
4.進程外部運用的變量
進程級變量只要在聲明它們的進程中才干被辨認,它們又被稱為部分變量。用“Dim”關鍵字來聲明它們,例如:
Dim intTemp As Integer
在整個使用順序運轉時,用“Dim”聲明的變量只在進程執行時期才存在。對任何暫時計算來說,部分變量是最佳選擇。例如,可以樹立十幾個不同的進程,每個進程都包括稱作“intTemp”的變量。只需每個“intTemp”都聲明為部分變量,那麼每個進程只辨認它自己的“intTemp”版本。任何一個進程都可以改動它自己的部分的“intTemp”變量的值,而不會影響到別的進程中的“intTemp”變量。
5.模塊外部運用的變量
依照缺省規則,模塊級變量對該模塊的一切進程都可用,但對其他模塊的代碼不可用。可在模塊頂部的聲明段用Private關鍵字聲明模塊級變量,從而樹立模塊級變量。例如:
Private intTemp As integer
在模塊級,“Private”和“Dim”之間沒有什麼區別,但“Private”更好些,由於很容易把它和“Public”區別開來,使代碼更容易了解。
一切模塊運用的變量
為了使模塊級的變量在其他模塊中也無效,用“Public”關鍵字聲明變量。公用變量中的值可用於使用順序的一切進程。和一切模塊級變量一樣,也在模塊頂部的聲明段來聲明公用變量,例如:
Public intTemp As Integer
留意:不能在進程中聲明公用變量,只能在模塊的聲明段中聲明公用變量。
6.靜態變量
變量有其生活的周期,在這一時期變量可以堅持它們的值。在使用順序的存活期內不斷堅持模塊級變量和公用變量的值。但是,關於“Dim”聲明的部分變量以及聲明部分變量的進程,僅當進程在執行時這些部分變量才存在。通常,當一個進程執行終了,它的部分變量的值就曾經不存在,而且變量所占據的內存也被釋放。當下一次執行該進程時,它的一切部分變量將重新初始化。但可將部分變量聲明定義成靜態的,從而保存變量的值。在進程外部用“Shared”關鍵字聲明一個或多個變量,其用法與“Dim”語句完全一樣:
Shared Depth
例如,上面的函數將存儲在靜態變量“Accumulate”中的以前的運營總值與一個新值相加,以計算運營總值。
Function RunningTotal(num)
shared ApplesSold As Integer
ApplesSold=ApplesSold+num
RunningTotal=ApplesSold
End Function
假如用“Dim”而不是“Shared”聲明“ApplesSold”,則以前的累計值不會經過調用函數保存上去,函數只會復雜地前往調用它的那個相反值。在模塊的聲明段聲明“ApplesSold”,並使它成為模塊級變量,由此也會收到異樣的效果。但是,這種辦法一旦改動變量的范圍,進程就不再對變量排他性存取。由於其他進程也可以訪問和改動變量的值,所以運營總值也許不牢靠,代碼將更難於維護。
留意:Visual Basic以前版本是用“Static”關鍵字來聲明變量,在vb.net中"Shared"關鍵字取代了“Static”關鍵字,靜態變量要慎用,由於一旦聲明了靜態變量,這個變量就會常駐內存,假如聲明的靜態變量很多,有能夠影響零碎的功能。