十年網(wǎng)站開發(fā)經(jīng)驗(yàn) + 多家企業(yè)客戶 + 靠譜的建站團(tuán)隊(duì)
量身定制 + 運(yùn)營(yíng)維護(hù)+專業(yè)推廣+無憂售后,網(wǎng)站問題一站解決
創(chuàng)新互聯(lián)www.cdcxhl.cn八線動(dòng)態(tài)BGP香港云服務(wù)器提供商,新人活動(dòng)買多久送多久,劃算不套路!
小編給大家分享一下C#反射的優(yōu)缺點(diǎn)是什么,希望大家閱讀完這篇文章后大所收獲,下面讓我們一起去探討吧!
C# 反射(Reflection)
反射指程序可以訪問、檢測(cè)和修改它本身狀態(tài)或行為的一種能力。
程序集包含模塊,而模塊包含類型,類型又包含成員。反射則提供了封裝程序集、模塊和類型的對(duì)象。
您可以使用反射動(dòng)態(tài)地創(chuàng)建類型的實(shí)例,將類型綁定到現(xiàn)有對(duì)象,或從現(xiàn)有對(duì)象中獲取類型。然后,可以調(diào)用類型的方法或訪問其字段和屬性。
優(yōu)缺點(diǎn)
優(yōu)點(diǎn):
1、反射提高了程序的靈活性和擴(kuò)展性。
2、降低耦合性,提高自適應(yīng)能力。
3、它允許程序創(chuàng)建和控制任何類的對(duì)象,無需提前硬編碼目標(biāo)類。
缺點(diǎn):
1、性能問題:使用反射基本上是一種解釋操作,用于字段和方法接入時(shí)要遠(yuǎn)慢于直接代碼。因此反射機(jī)制主要應(yīng)用在對(duì)靈活性和拓展性要求很高的系統(tǒng)框架上,普通程序不建議使用。
2、使用反射會(huì)模糊程序內(nèi)部邏輯;程序員希望在源代碼中看到程序的邏輯,反射卻繞過了源代碼的技術(shù),因而會(huì)帶來維護(hù)的問題,反射代碼比相應(yīng)的直接代碼更復(fù)雜。
反射(Reflection)的用途
反射(Reflection)有下列用途:
查看元數(shù)據(jù)
我們已經(jīng)在上面的章節(jié)中提到過,使用反射(Reflection)可以查看特性(attribute)信息。
System.Reflection 類的 MemberInfo 對(duì)象需要被初始化,用于發(fā)現(xiàn)與類相關(guān)的特性(attribute)。為了做到這點(diǎn),您可以定義目標(biāo)類的一個(gè)對(duì)象,如下:
System.Reflection.MemberInfo info = typeof(MyClass);