為了看懂 dnn,今天開始學習一點 VB.NET.
先寫了個簡單的代碼:
Imports System
' 定義一個子產品
Public Module Module1
Public Sub Hello()
Console.WriteLine( " Hello World! " )
End Sub
End Module
Public Class Test
' 主程式入口點
Public Shared Sub Main()
Module1.Hello
End Sub
End Class
用 vbc.exe vb_module1.vb 指令編譯。
為了看清楚 Module 到底是個什麼東西,我用 ildasm 看了一下。部分代碼如下:
. class public auto ansi sealed Module1
extends [mscorlib]System.Object
{
.custom instance void [Microsoft.VisualBasic]Microsoft.VisualBasic.CompilerServices.StandardModuleAttribute::.ctor() = ( 01 00 00 00 )
} // end of class Module1
原來,Module 也是一個類而已。不過他被附加了特殊的 Attribute, 進而表現的跟普通的類有不同的地方。
下面有功夫時要用 Reflector 看一下該 Attribute 到底是如何一個實作原理。