模塊(Module)裏面可以直接有方法,這些方法自動就是靜態的(或者稱爲共享的——VB.NET中的關鍵字是Shared),這些方法可以直接調用,所以Module是無法實例化,也沒有必要實例化的
模塊無法繼承,也無法實現接口
模塊裏面可以有類,但其實這個類並不需要真的通過模塊作爲前綴來引用。所以模塊有點虛的概念
模塊可以被組織到命名空間中去,因爲模塊其實是個虛的,所以它的方法也可以直接外層的命名空間調用。
下面有個例子。注意,這裏的代碼只是演示目的而寫的,沒有任何具體意義 。
''
'可以用命名空間封裝,這是比較好的做法
Namespace Xizhang
'
''
<summary>
''
' 模塊無法繼承,無法實現接口
'
''
</summary>
''
' <remarks></remarks>
Module Module1
'
''
<summary>
''
' 模塊裏面的方法都是靜態的,無需實例化,也無從實例化
'
''
</summary>
''
' <remarks></remarks>
Sub Main()
Dim c As New class1
c.Name = "chenxizhang"
Console.WriteLine(c.Name)
Console.WriteLine(c.GetClassName())
Console.Read()
End Sub
'
''
<summary>
''
' 類型可以放在模塊裏面,但主要的現實意義在於分類存放而已,放在模塊裏面並不影響該類型對外的引用。
例如我們並不一定需要用Xizhang.Module1.Class1,而是直接通過Xizhang.Class1就可以對其進行引用
'
''
</summary>
''
' <remarks></remarks>
Public Class class1 : Implements IComparable
'
''
<summary>
''
' 類型可以繼承一個基類,可以實現一個或者多個接口
'
''
</summary>
''
' <remarks></remarks>
Private _name As String
Public Property Name() As String
Get
Return _name
End Get
Set(ByVal value
As String)
_name = value
End Set
End Property
Public Function GetClassName() As String
Return Me.GetType().ToString()
End Function
Public Function CompareTo(ByVal obj As Object) As Integer Implements System.IComparable.CompareTo
Return 1
End Function
End Class
End Module
End Namespace