VR開發(fā)入門教程31:控制臺(tái)編程--反射
來(lái)源:
奇酷教育 發(fā)表于:
反射的概念反射機(jī)制是使程序具有動(dòng)態(tài)特性的非常關(guān)鍵的一種機(jī)制。反射的作用:1、根據(jù)指定的類名,類字段名和所對(duì)應(yīng)的數(shù)據(jù),得到該類的實(shí)例
反射的概念
反射機(jī)制是使程序具有動(dòng)態(tài)特性的非常關(guān)鍵的一種機(jī)制。
反射的作用:
1、根據(jù)指定的類名,類字段名和所對(duì)應(yīng)的數(shù)據(jù),得到該類的實(shí)例。
2、根據(jù)指定的裝箱對(duì)象 獲取其屬性值或者調(diào)用其方法
3、獲取未來(lái)會(huì)產(chǎn)生的程序集 并使用其中的類
總結(jié)一下就是讓我們可以于運(yùn)行時(shí)加載、探知、使用編譯期間完全未知的classes。換句話說(shuō),程序可以加載一個(gè)運(yùn)行時(shí)才得知名稱的class,獲悉其完整構(gòu)造(但不包括methods定義),并生成其對(duì)象實(shí)體、或?qū)ζ鋐ields設(shè)值、或喚起其methods1。
反射需要用到的類
反射用到的命名空間:
System.Reflection
System.Type
System.Reflection.Assembly
(1)使用Assembly定義和加載程序集,加載在程序集清單中列出模塊,以及從此程序集中查找類型并創(chuàng)建該類型的實(shí)例。
(2)使用Type這個(gè)類可以訪問(wèn)任何給定數(shù)據(jù)類型的信息。
(3)使用ConstructorInfo 了解構(gòu)造函數(shù)的名稱、參數(shù)、訪問(wèn)修飾符(如pulic 或private)和實(shí)現(xiàn)詳細(xì)信息(如abstract或virtual)等。
(4)使用MethodInfo了解方法的名稱、返回類型、參數(shù)、訪問(wèn)修飾符(如pulic 或private)和實(shí)現(xiàn)詳細(xì)信息(如abstract或virtual)等。
(5)使用FiedInfo了解字段的名稱、訪問(wèn)修飾符(如public或private)和實(shí)現(xiàn)詳細(xì)信息(如static)等,并獲取或設(shè)置字段值。
(6)使用PropertyInfo了解屬性的名稱、數(shù)據(jù)類型、聲明類型、反射類型和只讀或可寫狀態(tài)等,獲取或設(shè)置屬性值。
System.Type類:
System.Type 類對(duì)于反射起著核心的作用。但它是一個(gè)抽象的基類,Type有與每種數(shù)據(jù)類型對(duì)應(yīng)的派生類,我們使用這個(gè)派生類的對(duì)象的方法、字段、屬性來(lái)查找有關(guān)該類型的所有信息。
獲取給定類型的Type引用有3種常用方式:
●使用 C# typeof 運(yùn)算符。已知類型
Type t = typeof(string);
●使用對(duì)象GetType()方法。 已知對(duì)象
string s = "grayworm";
Type t = s.GetType();
●還可以調(diào)用Type類的靜態(tài)方法GetType()。已知類名
Type t = Type.GetType("System.String");