程序師世界是廣大編程愛好者互助、分享、學習的平台,程序師世界有你更精彩!
首頁
編程語言
C語言|JAVA編程
Python編程
網頁編程
ASP編程|PHP編程
JSP編程
數據庫知識
MYSQL數據庫|SqlServer數據庫
Oracle數據庫|DB2數據庫
 程式師世界 >> 編程語言 >> Visual Basic語言 >> VB.NET >> vb.net的共享成員(Share Members)

vb.net的共享成員(Share Members)

編輯:VB.NET

vb.net的共享成員(Share Members)。本站提示廣大學習愛好者:(vb.net的共享成員(Share Members))文章只能為提供參考,不一定能成為您想要的結果。以下是vb.net的共享成員(Share Members)正文


共享成員就是被類的實例所共享的屬性、進程、字段等等。在vb.net的承繼中,在一切的類的實例中把一個數據成員或函數的一個獨自的實例設置成共享是十分有用的。共享成員獨立於任何一個特定的類的實例。共享的進程在對象中必需顯式的聲明。由於這個緣由,在共享辦法中,援用不共享的成員是允許的。私有的共享的成員可以近程的訪問,並且可以在對象中前期綁定。
留意:在其他的編程言語中,共享成員也被稱為Static或許class成員。
有一個類庫,該類庫含有一些附加的進程,這些進程關於這個類庫而言是一些概念性的局部,需求獨自運轉,並需求用戶去聲明這個類中的一些類型。
假定開發了一個使用順序,它需求知道有多少個用戶如今登錄了該使用順序。當用戶裝置了用戶的使用順序後,注冊信息被寫入了注冊表,而且用戶的運轉順序每次在運轉的時分都要訪問用戶聲明的UserInfo對象。一個Long型共享成員UserCount就可以跟蹤用戶的個數,並且用一個屬性CanCreateUser來反省UserCount共享成員,能否要聲明曾經到達了登錄人數的極限最大值,並且初始化UserInfo的值來決議是讓用戶進入。
用戶也可以在以下狀況運用共享成員,假定有很多對象,而且這些對象需求共享一些信息。例如,假定曾經樹立了一個制定行程方案的軟件用來計算所選擇的一個旅游城市離國會大廈是不是中100裡之內。在City類中有Latitude和Longitude成員。關於半徑在100裡之內的城市,City的共享的NearCapitol屬性為"Incremented",而關於半徑在100裡之外的城市,City的共享的NearCapitol屬性為"Decremented".
在以上這些狀況時,假如沒有這些共享成員的話,需求樹立一個a.bas模塊來記載這些信息,這樣做能夠會給代碼的維護帶來一些困難,而且了解類也會愈加困難.在一個類中保存共享成員會是用戶更好天文解它們的目的.而且在工程中,也將會更好地重用這些代碼.
上面這個例子聲明了一個具有一個屬性和共享數據成員的類.當用戶運轉這個順序的時分,每一個PortDescriptor類的對象均有一個唯一的"Descript"屬性,但是共享著一個共享的數據成員Load,在對象PD1中改動Load屬性的話將會改動對象PD2的屬性"Load"的值,其代碼如下:

Imports system
Namespace ANameSpace
   Module Module1
   Class PortDescriptor
      Public Shared Load as Integer
      Private strDesc as String
      Property descript as String
        Get
            descript=strDesc
        End Get
        Set
            strDesc=Value
        End Set
      End Property
   End Class
   Shared Sub Main()
     Dim PD1 as PortDescriptor=New PortDescriptor
     Dim PD2 as PortDescriptor=New PortDescriptor
     PD1.descript="Idle"
     PD1.Load=80
     Console.WriteLine("PD1 Descript=:"&PD1.descript)
     Console.WriteLine("PD1 Load=:"&PD1.Load)
     Pd2.descript="Activr"
     Pd2.Load=540
     Console.WriteLine("PD2 Descript=:"&Pd2.descript)
     console.WriteLine("PD2 Load=:"&PD2.Load)
     Console.WriteLine("PD1 Descript now=:"&Pd1.descript)
     Console.WriteLine("PD1 Load now=:"&PD1.Load)
    End Sub
  End Module
End Namespace
  1. 上一頁:
  2. 下一頁:
Copyright © 程式師世界 All Rights Reserved