C 程式語言基礎19

2021-10-09 19:28:53 字數 2052 閱讀 5400

reflection,中文翻譯為反射。

這是.net中獲取執行時型別資訊的方式,.net的應用程式由幾個部分:『程式集(assembly)』、『模組(module)』、『型別(class)』組成,而反射提供一種程式設計的方式,讓程式設計師可以在程式執行期獲得這幾個組成部分的相關資訊,例如:

assembly類可以獲得正在執行的裝配件資訊,也可以動態的載入裝配件,以及在裝配件中查詢型別資訊,並建立該型別的例項。

type類可以獲得物件的型別資訊,此資訊包含物件的所有要素:方法、構造器、屬性等等,通過type類可以得到這些要素的資訊,並且呼叫之。

methodinfo包含方法的資訊,通過這個類可以得到方法的名稱、引數、返回值等,並且可以呼叫之。

諸如此類,還有fieldinfo、eventinfo等等,這些類都包含在system.reflection命名空間下。

反射指程式可以訪問、檢測和修改它本身狀態或行為的一種能力。

程式集包含模組,而模組包含型別,型別又包含成員。反射則提供了封裝程式集、模組和型別的物件。

您可以使用反射動態地建立型別的例項,將型別繫結到現有物件,或從現有物件中獲取型別。然後,可以呼叫型別的方法或訪問其字段和屬性。

using system;

using system.collections.generic;

using system.linq;

using system.text;

using system.threading.tasks;

using system.reflection;

namespace 反射1

set}

public

int age

set}

public

char gender

set}

public

student()

public

student

(string name,

int age,

char gender)

public

void

showinfomation()

年齡:性別:"

,name,age,gender);}

}class

program

//獲取類中的屬性

propertyinfo[

] propinfoarr = studenttype.

getproperties()

;foreach

(var item in propinfoarr)

//獲取到類中的方法 包含父類中的虛方法

methodinfo[

] methodinfoarr = studenttype.

getmethods()

;foreach

(var item in methodinfoarr)

propertyinfo propname = studenttype.

getproperty

("name");

propname.

setvalue

(studentobj,

"jack");

propertyinfo propage = studenttype.

getproperty

("age");

propage.

setvalue

(studentobj,20)

;propertyinfo propgender = studenttype.

getproperty

("gender");

propgender.

setvalue

(studentobj,

'男')

;methodinfo methodshow = studenttype.

getmethod

("showinfomation");

methodshow.

invoke

( studentobj,

null);

}}}

c語言程式設計(19)

字串 字元陣列 1 使用字串初始化字元陣列 char ch hello world scanf s ch printf s ch 2 字串處理函式 gets ch 指標變數指向字串 char str hello 使用字串常量對字元指標進行初始化 str str 2 str world 等價於char...

C語言程式設計基礎

目錄 第一章 c語言程式設計基礎 c語言國際標準定義 c語言標準庫 c程式的建立過程 最新版本有iso iec9899 2011文件定義,一般稱為c11 標準庫在一系列標準檔案 標頭檔案中指定,標頭檔案的副檔名總是.h,為了使一組標準功能可用於c程式檔案,只需要將對應的標準標頭檔案包含進來。3 編譯...

C語言網路程式設計基礎

一 基礎知識介紹 tcp 傳輸控制協議 和udp 使用者資料報協議是網路體系結構tcp ip模型中傳輸層一層中的兩個不同的通訊協議。tcp 傳輸控制協議,一種面向連線的協議,給使用者程序提供可靠的全雙工的位元組流,tcp套介面是位元組流套介面 stream socket 的一種。udp 使用者資料報...