什麼是反射?

2022-03-07 17:55:10 字數 1550 閱讀 1416

反射,reflection,通過它我們可以在執行時獲得各種資訊,如程式集、模組、型別、字段、屬性、方法和事件

通過對型別動態例項化後,還可以對其執行操作

簡單來說就是用string可以在runtime為所欲為的東西,實際上就是乙個.net framework內建的萬能工廠

一般用於外掛程式式框架程式和設計模式的實現,當然反射是一種手段可以充分發揮其能量來完成你想做的任何事情(前面好象見過一位高人用反射呼叫乙個官方類庫中未說明的函式。。。)

示例:

code

using

system;

using

system.collections.generic;

using

system.text;

namespace

example25lib

public

class1(

string

name,

intage)

public

void

changename(

string

newname)

public

void

changeage(

intnewage)

public

override

string

tostring()

, age:

", name, age);}}

}

反射例項化物件並呼叫其方法,屬性和事件的反射呼叫略去

code

using

system;

using

system.collections.generic;

using

system.text;

//注意新增該反射的命名空間

using

system.reflection;

namespace

example25}//

例項化物件

object

tmpobj

=tmpconsinfo.invoke(tmpparams);

console.writeline(tmpobj);

//獲取所有方法並執行

foreach

(methodinfo tmpmethod

intmptype.getmethods())

if(tmpparaminfos[i].parametertype.fullname =="

system.int32")

}tmpmethod.invoke(tmpobj, tmpparams);}//

呼叫完方法後再次列印物件,比較結果

console.writeline(tmpobj);}}

console.readline();}}

}

結果:

name: clark, age: 0

name: clark zheng, age: 27

什麼是反射

反射 可以獲得型別 類,結構,委託,介面和列舉 的成員,包括方法,屬性,建構函式,還可以獲得成員的名稱,限定符和引數,可以直接建立物件。class program stu s2 newstu 元資料 type t s.gettype var ps t.getproperties 屬性 var ms ...

什麼是反射

框架 半成品軟體,可以在框架的基礎上進行軟體開發,簡化編碼 反射 將類的各個組成部分封裝為其他物件,這就是反射機制 好處 在程式的執行過程中去操作這些物件 可以解耦,提高程式的可擴充套件性 獲取位元組碼檔案class物件的方式 獲取功能 1.獲取成員變數們 2.獲取構造方法們 3.獲取成員方法們 4...

什麼是菲涅耳反射?

在現實社會中往往有這樣的一種現象?菲涅爾 是乙個人的名字,由於他發現了反射折射的光學現象,這個現象就用這個人的名字命名。關於 菲涅爾 現象 如果你站在湖邊,低頭看腳下的水,你會發現水是透明的,反射不是特別強烈,如果你看遠處的湖面,你會發現水並不透明,這說明反射非常強烈。這就是 菲涅爾效應 ps 這裡...