反射提供描述組件、模組和類型的物件(類型Type)。 您可以使用反映來動態建立類型的實例、將類型系結至現有的物件,或從現有的物件取得類型,以及叫用其方法或存取其字段和屬性。 如果您在程式代碼中使用屬性,反映可讓您存取它們。 如需詳細資訊,請參閱 屬性。
以下是使用靜態方法 GetType 的簡單反映範例 -- 繼承自 Object 基類的所有類型 - 以取得變數的類型:
' Using GetType to obtain type information:
Dim i As Integer = 42
Dim type As System.Type = i.GetType()
System.Console.WriteLine(type)
輸出如下:
System.Int32
下列範例會使用反映來取得載入元件的完整名稱。
' Using Reflection to get information from an Assembly:
Dim info As System.Reflection.Assembly = GetType(System.Int32).Assembly
System.Console.WriteLine(info)
輸出如下:
mscorlib, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089
反思總覽
反思在以下情況下很有用:
當您必須存取程式元資料中的屬性時。 如需詳細資訊,請參閱 擷取儲存在屬性中的資訊。
用於檢查和實例化組件中的類型。
用於在執行期間建立新的類型。 在 System.Reflection.Emit中使用類別。
若要執行晚期系結,請存取在執行期間建立的類型的方法。 請參閱 動態載入和使用類型主題。
相關區段
如需詳細資訊,請參閱:
另請參閱
- Visual Basic 程式設計指南
- .NET 中的 組件