簡體   English   中英

傳遞動態方法時出錯:無法將方法組用作參數

[英]Error passing dynamic method: cannot use a method group as argument

我收到以下錯誤:“無法將方法組用作動態調度的操作的參數”:

public static void Convert(dynamic o)
{
clsQRcode.ConvertToQRs(o, SendSignalR); // error is here
}

public static void SendSignalR(dynamic o)
{
.... do stuff ....
}

在clsQRcode.ConvertToQRs中:

public static void ConvertToQRs(dynamic o, Action<dynamic> SSR)
{
... do stuff to o
SSR(o);
}

那么,我沒錯嗎?

更改代碼:

我刪除了所有對動力學的引用,現在有以下代碼出現類似錯誤:

public static void ConvertToQRs(string jsonString)
{
clsQRcode.ConvertToQRs(jsonString, SendSignalR); // error still here
}

public static string SendSignalR(string org_int, string person_int, string code, string message, string sCode = "")
{
... do stuff ...
}

將clsQRcode更改為:

public static void ConvertToQRs(string jsonString, Func<string, string, string, string, string> SSR)
{
... do the work ...
SSR(org_int, person_int, function, message);
}

但是現在錯誤消息是:“無法從“方法組”轉換為“功能”

在您的最終代碼中查看以下行:

public static string SendSignalR(string org_int, string person_int, string code, string message, string sCode = "")

此方法接受5個string參數並返回string ,因此它是Func<string, string, string, string, string, string> (前5個string輸入參數的類型,最后一個-返回值的類型),而在這里

public static void ConvertToQRs(string jsonString, Func<string, string, string, string, string> SSR)

SSRFunc<string, string, string, string, string> (請注意,僅5個string ,而不是6個)。 將此行替換為

public static void ConvertToQRs(string jsonString, Func<string, string, string, string, string, string> SSR)

(6個string ),您的代碼即可使用。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM