是否可以在C#中将函数作为参数传递?我可以使用Func或Action类来完成它,但这迫使我立刻声明整个函数签名.当我尝试使用Delegate时,我收到一个编译错误,说它无法将方法组转换为Delegate.
我正在研究Axial,我正试图让用户调用Web服务.我想要的是能够创建Visual Studio代理类,然后传入生成的函数.函数签名无关紧要,因为生成的代码仅使用函数名称.但是,我想传递函数而不是名称有两个原因:如果Web服务不存在或在Visual Studio中更新,则能够使用代理的Url属性和编译器错误.
public void AlertIt(object o) {
Axial.DOM.Window.Alert(o.ToString());
}
public void CallAddService() {
object[] param = new object[] { int.Parse(txtA.Text), int.Parse(txtB.Text) };
Axial.ServerScript.CallWebService(new WSProxy.WS().Add, param, AlertIt, AlertIt);
}
class Axial.ServerScript {
public void CallWebService(Delegate method, object[] param, Action<object> successCallback, Action<object> failureCallback) {
// translate to javascript (already working)
}
}
Run Code Online (Sandbox Code Playgroud)