關於C 基礎知識回顧

2022-09-26 09:18:08 字數 1311 閱讀 3366

使用反射呼叫方法:

一旦知道乙個型別所支援的方法,就可以對方法進行呼叫。呼叫時,需使用包含在

methodinfo中的invoke()方法。呼叫形式:

object invoke(object ob, object args)

這裡ob是乙個物件引用,將呼叫它所指向的物件上的方法。對於靜態方法,ob必須為null。

所有需要傳遞給方法的引數都必須在args陣列中指定。如果方法不需要引數,則args必須為null。

另外,陣列args的元素數量引數必須等於引數的數量。invoke()方法返回被呼叫方法的返回值。

要呼叫某個方法,只需在乙個methodinfo例項上呼叫invoke(),該例項通過呼叫

getmethods()

方www.cppcns.com法獲得。請看事例:

複製** **如下:

using system;

using system.collections.generic;

using system.linq;

using system.text;

using system.reflection;

namespace reflection

static void invokemethdemo()

", t.name);

console.writeline("本類所提供的方法有:");

vhoyaz;          methodinfo mi = t.getmethods();

int val;

foreach (methodinfo m in mi)

else if (m.name == "set" && pi[0].parametertype == typeof(double))

else if (m.name.compareto("sum") == 0) ",val);

}else if(m.name.compareto("isbetween")==0)

在x和y之間",args[0]);}}

console.writeline();}}

}}class myclass

public int sum()

public bool isbetween(int i)

public void set(int a, int b)

public void set(double a, double b)

public void show()

,y:", x, y);

}}執行結果如下:

本文標題: 關於c#基礎知識回顧--反射(二)

本文位址:

c 基礎知識回顧

1.資料型別和類。所有程式設計都是處理輸入和輸出。關於輸入引數,從右至左把引數入棧,這樣根據棧基址,可以定位第乙個引數。因為很多函式是引數數量不定的,比如printf.關於輸出,記得輸出時,一般是把值放入eax 暫存器,所以一般資料型別,直接放入返回值資料,暫存器可以裝下,而返回物件,會返回物件的指...

C語言基礎知識回顧

逗號運算 scanf和printf輸入 輸出 迴圈 switch break和continue的區別 主函式是乙個程式的入口,整個程式開始執行的位置,乙個程式中最多只能有乙個主函式,也可以沒有。int main void 運算子 含義語法 返回值 與a b ab都真,則真 其他為假 或 a b ab...

MySQL知識回顧 MySQL基礎知識回顧

markdownpad document mysql mysql 是用於管理檔案的乙個軟體 服務端軟體 socket服務端 本地檔案操作 解析指令 sql語句 客戶端軟體 各種各樣 socket客戶端 傳送指令 解析指令 sql語句 ps dbms 資料庫管理系統 sql語句 需要掌握的技能 安裝 ...