Wie übergebe ich eine Funktion als Parameter in C #?

Ist es möglich, eine Funktion als Parameter in C # zu übergeben? Ich kann es mit der Func- oder der Action-Klasse machen, aber das zwingt mich, die gesamte Funktionssignatur auf einmal zu deklarieren. Wenn ich versuche, Delegate zu verwenden, erhalte ich die Fehlermeldung, dass eine Methodengruppe nicht in einen Delegaten konvertiert werden kann.

Ich arbeite anAxia und ich versuche Benutzern das Aufrufen von Webdiensten zu ermöglichen. Was ich will, ist die Möglichkeit, die Visual Studio-Proxy-Klasse zu erstellen und dann die generierte Funktion zu übergeben. Die Funktionssignatur spielt keine Rolle, da der generierte Code nur den Funktionsnamen verwendet. Ich möchte die Funktion jedoch aus zwei Gründen anstelle des Namens übergeben: der Möglichkeit, die URL-Eigenschaft des Proxys zu verwenden, und einem Compilerfehler, wenn der Webdienst nicht vorhanden ist oder in Visual Studio aktualisiert wird.


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)
    }
}

Antworten auf die Frage(16)

Ihre Antwort auf die Frage