亚洲在线久爱草,狠狠天天香蕉网,天天搞日日干久草,伊人亚洲日本欧美

為了賬號安全,請及時綁定郵箱和手機立即綁定
已解決430363個問題,去搜搜看,總會有你想問的

如下所示,關于C# invoke方法的參數個數不匹配的問題,求解決方法?

如下所示,關于C# invoke方法的參數個數不匹配的問題,求解決方法?

C# C
躍然一笑 2021-11-19 15:11:57
代碼如下: public object ExecuteSense(string senseMethod){object result = null;Console.WriteLine(this.GetType());System.Reflection.MethodInfo methodInfo = this.GetType().GetMethod(senseMethod);//獲取具體的函數方法if (methodInfo is System.Reflection.MethodInfo && methodInfo.IsPublic)result = methodInfo.Invoke(this, new object[] { });//在此會彈射出 異常 return result;總會顯示“參數個數不匹配” 求解
查看完整描述

1 回答

?
瀟湘沐

TA貢獻1816條經驗 獲得超6個贊

這個問題很明顯啊,你調用methodInfo.Invoke 方法的時候沒有傳遞參數進去,參數不匹配,當然報錯了。在使用反射機制動態調用方法時,你先要知道此方法需要什么參數,參數的類型,參數的個數等等。比方說我有一個方法:publc void TestMethod(int a, int b); 那么你調用的時候就要這樣寫:
int a = ...;
int b = ...;
methodInfo.Invoke(this, new object[] { a, b });
所以你這個ExecuteSense 方法的簽名應該改為:
public object ExecuteSense(string senseMethod, obejct[] args);
參數在外部傳入。

查看完整回答
反對 回復 2021-11-23
  • 1 回答
  • 0 關注
  • 783 瀏覽

添加回答

舉報

0/150
提交
取消
微信客服

購課補貼
聯系客服咨詢優惠詳情

幫助反饋 APP下載

慕課網APP
您的移動學習伙伴

公眾號

掃描二維碼
關注慕課網微信公眾號