共用(靜態)成員(參考範例6)
共用成員以物件導向實作"全域變數",不需要產生Class Instance,即不需要透過New的程式(dim MyObject as New OOP),即可直接引用。共用成員須使用Shared關鍵字宣告,一但宣告為共用成員,可直接透過點(.)運算子直接取用。共用成員並不會隨Object建立有不同的值,固因只有固定不隨物件Instance改變的資料成員,才考慮建立為共同成員。
範例1:無參數建構式
Public Class OOP
Sub New()
'Do Something ...
End Sub
End Class
範例2:參數建構式
Public Class OOP
Sub New()
'Do Something ...
End Sub
'參數建構式
Sub New(ByVal name As String)
'Do Something ...
End Sub
End Class
範例3:多重參數建構式
Public Class OOP
Sub New()
'Do Something ...
End Sub
'處理整理的建構式
Sub New(ByVal a As Integer, ByVal b As Integer)
End Sub
'處理浮點數的建構式
Sub New(ByVal a As Double, ByVal b As Double)
End Sub
End Class
範例4:Me關鍵字
Public Class OOP
Public Hour As Integer
''' <summary>
''' 在函式中會使用到Class變數Hour,但Class的Hour數變與函式參數Hour同名,所以必須使用Me關鍵字來需得Class變數Hour的值。
''' </summary>
''' <param name="Hour">函式區域變數</param>
''' <remarks></remarks>
Public Sub HourTrans(ByVal Hour As Integer)
Me.Hour = Hour
'Do Something ...
End Sub
End Class
範例5:方法多載
Public Class OOP
'處理整數加法
Public Function Add(ByVal a As Integer, ByVal b As Integer) As String
'Do Integer Add
End Function
'處理浮點數加法
Public Function Add(ByVal a As Double, ByVal b As Double) As String
'Do Double Add
End Function
End Class
範例6:共用成員
Public Class OOP
Public Shared dayhour As Integer = 24
Public Shared Function HourTrans(ByVal hour As Integer) As String
'Do Something ...
End Function
End Class
在程式碼中:
Public Class _Default
Inherits System.Web.UI.Page
Protected Sub Page_Load(ByVal sender As Object, ByVal e As System.EventArgs) Handles Me.Load
Dim resultHour As String
'直接使用Class名稱(OOP)來引用方法
resultHour = OOP.HourTrans(16)
End Sub
End Class
你好:
回覆刪除最近才要學習vb,可以之前已經用Dos 寫程式幾拾年了,那是因為一直抗拒學習,現在因桌邊買不到了,定址受限,不得不開始學習,請你告訴我那裡可以找到介紹vb物件的書?例如有没有書在介紹MsgBox(),InputBox(),add(),...等等,我覺得有無限多的這種東西,如何找到他們?
1. 書局;
回覆刪除2. MSDN;
3. books, kingstone;
4. Internet (Blog ...)
我除了大學時是上課學習,畢業後都是自修,以上是我自修的資料來源。提供給你參考。