C#反射時合理使用“字典”加速“對象”的Set,Get

通常在我們使用C#時,對象的屬性進(jìn)行賦值或者取值時會使用到反射-“System.Reflection”。

反射:在程序運(yùn)行時,動態(tài)獲取程序集,類型(class,interface)和類型的成員信息(方法,字段,屬性等)。在程序運(yùn)行時,動態(tài)創(chuàng)建 類型實(shí)例, 以及調(diào)用和方法動態(tài)創(chuàng)建出來的類型實(shí)例的成員。


程序集

但由于反射的機(jī)制,當(dāng)我們在對對象集合使用反射進(jìn)行GET,SET的時候會消耗大量時間,從而引進(jìn)“字典”來改善這一問題:

第一步:聲明所謂的字典“Hashtable”

private static readonly Hashtable dic = Hashtable.Synchronized(new Hashtable());

第二步:構(gòu)造“SET”or"GET"方法:

Set:


Get:


第三步:將“PropertyInfo”添加到字典中:


(1)


(2)


(3)

以上便是通過“字典”的方式來加速對象的反射,詳細(xì)代碼可以訪問我的Github。

?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請聯(lián)系作者
【社區(qū)內(nèi)容提示】社區(qū)部分內(nèi)容疑似由AI輔助生成,瀏覽時請結(jié)合常識與多方信息審慎甄別。
平臺聲明:文章內(nèi)容(如有圖片或視頻亦包括在內(nèi))由作者上傳并發(fā)布,文章內(nèi)容僅代表作者本人觀點(diǎn),簡書系信息發(fā)布平臺,僅提供信息存儲服務(wù)。

友情鏈接更多精彩內(nèi)容