理解和使用c 中的反射

2021-09-05 15:54:27 字數 1015 閱讀 8213

什麼是反射?

reflection,中文翻譯為反射。這是.net中獲取執行時型別資訊的方式,.net的應用程式由幾個部分:『程式集(assembly)』、『模組(module)』、『型別(class)』組成,而反射提供一種程式設計的方式,讓程式設計師可以在程式執行期獲得這幾個組成部分的相關資訊,例如:

assembly類可以獲得正在執行的裝配件資訊,也可以動態的載入裝配件,以及在裝配件中查詢型別資訊,並建立該型別的例項。

type類可以獲得物件的型別資訊,此資訊包含物件的所有要素:方法、構造器、屬性等等,通過type類可以得到這些要素的資訊,並且呼叫之。

使用 module 了解如下的類似資訊:包含模組的程式集以及模組中的類等。您還可以獲取在模組上定義的所有全域性方法或其他特定的非全域性方法。

使用 constructorinfo 了解如下的類似資訊:建構函式的名稱、引數、訪問修飾符(如 public 或 private)和實現詳細資訊(如 abstract 或 virtual)等。使用 type 的 getconstructors 或 getconstructor 方法來呼叫特定的建構函式。

使用 methodinfo 來了解如下的類似資訊:方法的名稱、返回型別、引數、訪問修飾符(如 public 或 private)和實現詳細資訊(如 abstract 或 virtual)等。使用 type 的 getmethods 或 getmethod 方法來呼叫特定的方法。

使用 fieldinfo 來了解如下的類似資訊:欄位的名稱、訪問修飾符(如 public 或 private)和實現詳細資訊(如 static)等;並獲取或設定字段值。

使用 eventinfo 來了解如下的類似資訊:事件的名稱、事件處理程式資料型別、自定義屬性、宣告型別和反射型別等;並新增或移除事件處理程式。

使用 propertyinfo 來了解如下的類似資訊:屬性的名稱、資料型別、宣告型別、反射型別和唯讀或可寫狀態等;並獲取或設定屬性值。

使用 parameterinfo 來了解如下的類似資訊:引數的名稱、資料型別、引數是輸入引數還是輸出引數,以及引數在方法簽名中的位置等。

c 中的反射要怎樣理解

反射 reflection 是.net中的重要機制,通過放射,可以在執行時獲得.net中每乙個型別 包括類 結構 委託 介面和列舉等 的成員,包括方法 屬性 事件,以及建構函式等。還可以獲得每個成員的名稱 限定符和引數等。有了反射,即可對每乙個型別瞭如指掌。如果獲得了建構函式的資訊,即可直接建立物件...

c 中的反射要怎樣理解?

反射 reflection 是.net中的重要機制,通過放射,可以在執行時獲得.net中每乙個型別 包括類 結構 委託 介面和列舉等 的成員,包括方法 屬性 事件,以及建構函式等。還可以獲得每個成員的名稱 限定符和引數等。有了反射,即可對每乙個型別瞭如指掌。如果獲得了建構函式的資訊,即可直接建立物件...

c 反射的使用

獲取具有指定名稱的type,執行區分大小寫的搜尋。tips gettype包括object.gettype 和type.gettype6個過載靜態方法 type ty type.gettype exthomeexpansion.view.zyl 通過引導程式集也可以獲得對應類的型別 其中load方法...