C 反射技術小結

2021-04-21 13:56:37 字數 915 閱讀 7727

要用c#反射技術的話,首先得引入system.reflection 命名空間,這個命名空間裡的類,具有動態引導程式集、型別,動態呼叫方法、設定和取得屬性和字段的值、可以獲取型別和方法的資訊的功能。

要想對乙個型別例項的屬性或字段進行動態賦值或取值,首先得得到這個例項或型別的type,微軟已經為我們提供了足夠多的方法。

1 class myclass

2 10      set

11        

14   }

15 }

如果有個這個型別的例項:

myclass myobj = new myclass();

要動態地為這個例項的屬性field賦值,那麼得先得到這個例項的型別:

type t = typeof(myclass);

另一種方法是:

type t = myobj.gettype();

只要得到了物件的型別,那麼就可以利用反射對這個物件「為所欲為」了,哈哈。

利用反射為物件裡的屬性field賦值了:

t.getproperty("field").setvalue(myobj, value, null);

或者myobj.gettype().getproperty("field").setvalue(myobj, value, null);

或者myobj.gettype().getproperty("field").getvalue(myobj, value, null);

如果把屬性名和要賦的值寫道配置檔案裡的話,我們就可以達到程式執行期間動態的為屬性賦值了。

利用反射獲取物件裡的屬性field的值的方法:

t.getproperty("field").setvalue(myobj,null));

t.getproperty("field").getvalue(myobj,null);

流技術小結

按照資料流的方向分,分為輸入流和輸出流 按照處理資料的單位來分,分為位元組流和字元流 按照功能來分,分為節點流和處理流 inputstream 位元組輸入流,實現類 fileinputstream outputstream 位元組輸出流,實現類 fileoutputstream file file ...

學習c c 技術小結

偽指令 pragma pack n 這個指令用於告訴編譯器,程式裡面的結構體按到n個位元組對齊。pragma pack 取消自定義的位元組對齊。class和struct的比較 sta s 合法,但是如果是class的話,不能這麼做。extern c 解析 extern表示函式和變數的作用範圍,表示可...

體繪製技術小結

vtk主要提供了三種體繪製技術 vtk最初是針對醫療領域的應用而 設計的,所以對於醫療的視覺化方面,如處理ct的掃瞄 資料等,具有強大的功能。它將在視覺化過程中經常遇到的細節遮蔽起來,並封裝了一些常用的視覺化演算法,如將麵繪製中常用的mc marching cubes 演算法和體繪製中常用的光線投射...