我收到以下错误:“不能使用方法组作为动态调度操作的参数”:
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);
}
但现在错误信息是:“无法从'方法组'转换为'Func
在最终代码中查看此行:
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)
SSR
是Func<string, string, string, string, string>
(注意,只有5个string
,而不是6个)。用此替换此行
public static void ConvertToQRs(string jsonString, Func<string, string, string, string, string, string> SSR)
(6 string
)和你的代码将工作。