日韩 亚洲一区二_久久vs国产综合色大全_国产精品福利在线_欧美在线一级A片免费观看欧美在线_女同性毛片60分钟

您現(xiàn)在所在的位置:首頁(yè) >學(xué)習(xí)資源 > Unity遊戲/VR/AR入門(mén)教材 > VR開(kāi)發(fā)入門(mén)教程31:控制臺(tái)編程--反射

VR開(kāi)發(fā)入門(mén)教程31:控制臺(tái)編程--反射

來(lái)源:奇酷教育 發(fā)表於:

反射的概念反射機(jī)制是使程序具有動(dòng)態(tài)特性的非常關(guān)鍵的一種機(jī)制。反射的作用:1、根據(jù)指定的類(lèi)名,類(lèi)欄位名和所對(duì)應(yīng)的數(shù)據(jù),得到該類(lèi)的實(shí)例

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