明輝手游網(wǎng)中心:是一個(gè)免費(fèi)提供流行視頻軟件教程、在線學(xué)習(xí)分享的學(xué)習(xí)平臺(tái)!

VB.Net學(xué)習(xí)筆記(變量生存期與賦值)

[摘要]變量有生存周期這一點(diǎn)程序員們都了解,在VB.Net中增加了一個(gè)修飾Shared。Shared 關(guān)鍵字指示一個(gè)或多個(gè)被聲明的編程元素將被共享。要點(diǎn)是:共享元素不關(guān)聯(lián)于某類或結(jié)構(gòu)的特定實(shí)例。需要通過(guò)使用...
變量有生存周期
這一點(diǎn)程序員們都了解,在VB.Net中增加了一個(gè)修飾Shared。Shared 關(guān)鍵字指示一個(gè)或多個(gè)被聲明的編程元素將被共享。要點(diǎn)是:共享元素不關(guān)聯(lián)于某類或結(jié)構(gòu)的特定實(shí)例。需要通過(guò)使用類名或結(jié)構(gòu)名稱或者類或結(jié)構(gòu)的特定實(shí)例的變量名稱限定共享元素來(lái)訪問(wèn)它們。簡(jiǎn)單的描述就是Shared變量是為類型本身服務(wù)而不是為特定對(duì)象服務(wù)的。



Shared舉例

Public Class TestA

Public Shared i As Int32 = 10

End Class





Public Class TestB

Inherits TestA '繼承TestA

Public Sub New()

TestA.i = 100 '使用類型的名字進(jìn)行訪問(wèn)Shared變量

End Sub

End Class




要注意的是,在VB.Net中Shared變量與類型和實(shí)例的關(guān)系在語(yǔ)法上要求似乎并不特別嚴(yán)格,程序員可以使用類型的實(shí)例來(lái)訪問(wèn)并修改Shared變量,但在C#中要求就很?chē)?yán)謹(jǐn)了。







賦值語(yǔ)句
在VB.Net中賦值語(yǔ)句分為:簡(jiǎn)單賦值語(yǔ)句、復(fù)合賦值語(yǔ)句、委托賦值語(yǔ)句、Mid賦值語(yǔ)句。

簡(jiǎn)單賦值語(yǔ)句
簡(jiǎn)單賦值語(yǔ)句和以前的VB賦值語(yǔ)句基本上沒(méi)有太大的區(qū)別,只是現(xiàn)在VB.Net允許對(duì)變量聲明后就立即賦值了(在前面可訪問(wèn)性舉例可以看到示例)。我們需要關(guān)注的是數(shù)組的聲明和賦值方法。

在VB.Net中你可以在聲明數(shù)組時(shí)同時(shí)描述數(shù)組的緯度和上限,且每一個(gè)數(shù)組的緯度的下限都是0,不可以改變。但可以通過(guò)將數(shù)組的上限指定為 -1 來(lái)指定“零長(zhǎng)度數(shù)組”。這種數(shù)組不包含任何元素。

如果不顯示的描述數(shù)組的長(zhǎng)度,你可以在聲明數(shù)組的同時(shí)立即賦值。



數(shù)組的聲明和賦值舉例

Public Class TestA

Dim iArr() As Int32

Dim bArr(5) As Boolean '5是指bArr下標(biāo)的上限,即可以有6個(gè)元素

Dim lArr() As Long = New Long(3) {100, 200, 300, 400}

Dim cArr() As String = New String() {"A", "B", "C"}

Dim dArr(-1) As Double

End Class




關(guān)于數(shù)組的更多特性,在后期關(guān)于數(shù)組的介紹中將詳細(xì)闡述。



復(fù)合賦值
現(xiàn)在VB.Net開(kāi)始支持復(fù)合賦值語(yǔ)句。與完全展開(kāi)的表達(dá)式不同,復(fù)合賦值語(yǔ)句左側(cè)的變量?jī)H計(jì)算一次。這意味著在運(yùn)行時(shí),變量表達(dá)式先于賦值語(yǔ)句右側(cè)的表達(dá)式計(jì)算。



復(fù)合賦值舉例

Public Class TestA

Public Sub New()

Dim i As Int32

i += 10

End Sub

End Class




Mid賦值
Mid賦值實(shí)際上是字符串的處理賦值過(guò)程。通過(guò)以下的舉例可以了解Mid的賦值方式。



Mid舉例

Public Class TestA

Public Sub New()

Dim TmpStr As String

TmpStr = "Hello VB.Net" ' Hello VB.Net

Mid(TmpStr, 7, 2) = "c#" ' Hello c#.Net

Mid(TmpStr, 7) = "VB6" ' Hello VB6Net

Mid(TmpStr, 7) = "VB6 to VB.Net" ' Hello VB6 to

Mid(TmpStr, 7, 3) = "VB6 to VB.Net" 'Hello VB6 to

End Sub

End Class






關(guān)于委托語(yǔ)句的關(guān)鍵字AddressOf在后期委托和