C 反射教程(4)

2021-05-24 05:05:32 字數 1828 閱讀 9487

+展開

-c#using

system;

//匯入相應的命名空間

using

system.reflection;

using

system.io;

class 

//宣告assembly型別物件am

assembly am;

try//捕獲檔案未找到異常

catch

(filenotfoundexception e) "

, e.message); }

//捕獲空物件引用異常

catch

(nullreferenceexception e) "

, e.message); }

//捕獲一般異常

catch

(exception e) "

, e.message); }

finally }

}//定義disallam方法,用於顯示程式集列表

static

void

disallam() "

, a.fullname); }

} }

class

classb

型別的資訊**********==="

, fullname);

//獲取type物件的所有公共成員並儲存到mi陣列

memberinfo mi = tp.getmembers();

//遍歷並輸出mi陣列所有的子項屬性

foreach

(memberinfo m 

inmi)

,名稱->"

,m.membertype, m.name); }

//獲取type物件所實現的介面並儲存到itp陣列

type itp = tp.getinte***ces();

//判斷itp陣列是否有子項,如果有則輸出子項屬性

if (itp.length != 0)

實現的介面型別->"

, fullname, t.fullname); }

}else

不實現的任何介面型別"

, fullname); }

} }

+展開

-c#using

system;

//匯入相應的命名空間

using

system.reflection;

using

system.io;

assembly am;

trycatch

(filenotfoundexception e) "

, e.message); }

+展開

-c#am = assembly.loadfrom();

+展開-c#

public

class

oldclass }

在目錄下新建乙個程式檔案,並命名為newclass.cs,編寫**如**7.10所示。

**7.10 第2個外部類:newclass.cs

+展開

-c#public

class

newclass }

在目錄下新建乙個程式檔案,並命名為myclass.cs,編寫**如**7.11所示。

**7.11 第3個外部類:myclass.cs

+展開

-c#public

class

myclass

//定義public許可權的methodtxt例項方法

public

string

methodtxt()

}

C 反射教程(1)

反射技術在多數.net程式中不會被使用,但是它的確是非常重要的技術,在很多應用程式中有著不可替代的作用。net的應用程式體系分為以下4個層次 程式集 assembly 模組 module 型別 class 和型別成員 member 反射技術可以在程式執行時獲取這4個層次的元資料資訊。只要掌握了反射技...

java反射 4 反射賦值

本篇介紹利用反射給物件賦值 方法1 獲得並使用預設構造器建立類的物件 並對物件賦值 這裡類用的是person類 屬性有 id name address 來做例子 public class person public void setid integer id public string getnam...

反射 4 Type反射

1 activator.createinstance type t 會動態呼叫類的public無參建構函式建立乙個物件,返回值就是建立的物件,如果類沒有無參建構函式就會報錯。2 應用 動態建立物件sayhello。介面宣告到單獨的專案中,避免迴圈引用。如下 using system using sy...