反射簡單呼叫

2021-09-22 13:38:44 字數 1624 閱讀 3018

1

class

program

2);//

構造函式呼叫有參建構函式

16object obj = constructor.invoke(new

object );

17 methodinfo method1 = type.getmethod("

sayname

");//

得到無參公有方法

18 methodinfo method2 = type.getmethod("

sayage

", bindingflags.instance | bindingflags.nonpublic);//

得到私有方法

19 methodinfo method3 = type.getmethod("

getname

", new type );//

得到帶引數的公有方法(後面的type型別可以省略,但如果是過載方法就不能省)

20 methodinfo method4 = type.getmethod("

getname

", new type[0

]);21 methodinfo method5 = type.getmethod("

printage

");//

得到引數是ref的的方法

22 propertyinfo name = type.getproperty("

name

");//

得到屬性

23 propertyinfo age = type.getproperty("

age"

);24 fieldinfo name = type.getfield("

name

", bindingflags.instance | bindingflags.nonpublic);//

得到字段(全是私有的)

25 name.setvalue(obj, "

李四", null);//

給name設值,後面的null是對應的索引器

26 age.setvalue(obj, 23, null

);27 method1.invoke(obj, null

);28

29 method2.invoke(obj, null

);30

31 console.writeline(method3.invoke(obj, new

object ));//

呼叫有返回值的方法

3233 method4.invoke(obj, null

);34

35 method5.invoke(obj, new

object );//

呼叫引數是ref的方法

36console.readline();37}

38 }

簡單呼叫元件4

1 啟動元件得到乙個介面指標 inte ce 後,不要呼叫addref 因為系統知道你得到了乙個指標,所以它已 經幫你呼叫了addref 函式 2 通過queryinte ce 得到另乙個介面指標後,不要呼叫addref 因為.和上面的道理一樣 3 當你把介面指標賦值給 儲存到 另乙個變數中的時候,...

CPUID指令簡單呼叫

關於cpuid指令,可以看維基百科的相關介紹 在windows下可以呼叫 cpuid和 cpuidex這兩個函式,cpuid函式在vs2005中就已經開始支援了。下面是簡單的呼叫 在windows下vs不支援x64專案嵌入asm,所以只能編譯32位版本。include include gcc cpu...

對函式的簡單呼叫

1.實現乙個函式,列印乘法口訣表,口訣表的行數和列數自己指定,輸入9,輸出9 9口訣表,輸出12,輸出12 12的乘法口訣表。define crt secure no warnings 1 include int main int a 0 scanf d a void table int x tab...