C#中有点生锈
我需要将回调传递给方法:
void InvokeScript(string jsScript, Action<object> resultCallback);
在我的课程中,我创建了一个传入方法的方法:
public void callback(System.Action<object> resultCallback)
{
}
错误讯息1:
Resco.UI.IJavascriptBridge.InvokeScript(string, System.Action<object>)' has some invalid arguments
错误消息2:
cannot convert from 'method group' to 'System.Action<object>'
提前致谢
答案 0 :(得分:2)
你的回调应该是:
public void callback(object value)
答案 1 :(得分:0)
您需要让参数传递object
。
答案 2 :(得分:0)
尝试
Action<object> myCallBack = delegate
{
// do something here
};
InvokeScript("some string", myCallBack);
方法委托需要采用object
而不返回任何值。这就是Action<object>
的含义。您可以使用我已经显示的内置Action
委托,或者您可以创建一个新方法并将其作为委托传递:
public void MyMethod(object myParameter)
{
// do something here.
}
InvokeScript("some string", MyMethod);
答案 3 :(得分:0)
您可以创建一个匹配Action<object>
委托签名的方法,例如
public void someMethod(object parameter) { }
然后通过它,
或者你可以使用lambda:
InvokeScript("stuff",
param => {
Blah(param);
MoreBlah();
});
答案 4 :(得分:0)
回调的签名应如下:
void MethodName(object parameter);
即使没有创建单独的方法,您也可以使用lambda expression:
InvokeScript(
"some string",
p =>
{
// the callback's logic
});