教你如何設(shè)置VB.NET共享變量作用域
在編程中一定會用到變量,但是我們往往搞不清楚什么是共享變量,什么是全局變量。這里我們就這個問題一起討論一下吧!我們可以創(chuàng)建另外一種共享成員。有時候類的所有實例需要共享一個數(shù)值,有時候每個特定類型的對象要共享相同的變量,這些時候都可以通過使用共享變量來實現(xiàn)目的。一個VB.NET共享變量可以使用Shared關(guān)鍵字來聲明,這一點很象共享方法的聲明:
- Public Class MyCounter
- Private Shared mintCount As Integer
- End Class
#T#跟共享方法一樣,我們也可以根據(jù)需要來設(shè)置VB.NET共享變量的作用域。在缺省狀態(tài)下兩者就不一樣了,共享方法是Public,而共享變量是Private。總而言之,我們要養(yǎng)成一個好的習慣:定義方法和變量的作用域而不使用缺省值,以避免混亂。關(guān)于共享變量的一件重要的事情是它們在所有類的實例中都是公用。我們可以鍵入如下的代碼來加強我們的類:
- Public Class MyCounter
- Private Shared mintCount As Integer
- Public Sub New()
- mintCount += 1
- End Sub
- Public ReadOnly Property Count() As Integer
- Get
- Return mintCount
- End Get
- End Property
- End Class
仔細看看上面的代碼:當我們?yōu)轭悇?chuàng)建了實例時,計數(shù)器就增一。+=操作符是一個在VB.NET新有的。
在任何時候我們可以通過Count屬性來取出count數(shù)值。這樣,如果我們運行下面的客戶代碼,我們可以得到結(jié)果為3。
- Protected Sub Button4_Click(ByVal sender As Object, _
- ByVal e As System.EventArgs)
- Dim obj As MyCounter
- obj = New MyCounter()
- obj = New MyCounter()
- obj = New MyCounter()
- MsgBox(obj.Count, MsgBoxStyle.Information,counter)
- End Sub
如果我們再次運行這段程序,將可以得到6、9等等。只要我們的應用程序繼續(xù)運行計數(shù)器就保持有效,也就是說一旦我們結(jié)束應用程序計數(shù)器就不再起作用。
這項計數(shù)對于服務器的處理過程是十分有用的,因為它可以輕松地不停地進行計數(shù)。這個數(shù)值只有在處理過程重新開始地時候才被復位。
全局變量
對于VB.NET共享變量另外一個通常的應用是提供了全局變量的類型。給定一個Public作用域的共享變量:
- Public Class TheClass
- Public Shared MyGlobal As Integer
- End Class
我們可以在客戶代碼中使用這個變量。
- TheClass.MyGlobal += 5
這個變量將在我們應用程序的任何地方都是有效的,它提供了一個很好的機理來在組件、類、模塊等等之間來共享數(shù)值。