學習記錄-反射相關
一些基本概念 關于Type類
object類中的getType方法
3中方法來獲取type 1.參數(shù)名.getType() 2.typeof(類名) 3.Type.getType("類名") 注意:第三種方法里傳入的類名需要包含其命名空間 Type是一個類,這些方法可以看作在實例對應的type對象
如果這幾種獲得type方法的目標對象都是同一個類,或結構體,那么所得到的type對象指向的是都是同一個
得到程序集信息,不知道有什么用
獲得指定類中的所有【公共】成員 需要引入命名空間System.Reflection
獲取公共構造函數(shù)
getConstructor傳入Type數(shù)組,無參時數(shù)組長度為0 執(zhí)行構造函數(shù)使用invoke括號內(nèi)傳入object數(shù)組,無參時傳null invoke方法的返回值是object類型,使用as方法轉(zhuǎn)換為對應類后,可以完成對該類對象的實例化
因為getConstructor方法傳入的參數(shù)是type數(shù)組,數(shù)組中內(nèi)容應為type對象,故傳入的數(shù)組內(nèi)容為 typeof(int)之類的type對象
獲取指定類的公共成員【變量】 同時,這里給定了方法去得到指定名稱的公共成員變量 對象.getField(string)返回值是FieldInfo類型
通過FieldInfo中提供方法GetValue來獲得其中變量的值 (just 獲得)
通過SetValue(類對象,值)來修改類對象中的目標變量值 (圖中的infoJ在上方已經(jīng)說明了操作的是test對象中的j變量)
獲取其它類中的公共成員方法并執(zhí)行 此方法中進行操作方法的invoke對象第一個參數(shù)是說明哪一個對象要執(zhí)行這個方法 -圖片內(nèi)容來自【唐老獅】