SORU
19 Aralık 2008, Cuma


C parametre olarak bir işlev geçirmek nasıl giderilir?

C parametre olarak bir işlev geçmek mümkündür#? Bu İşlev veya Eylem sınıfları kullanarak yapabilirim ama bu benim tüm işlev imzası derhal ilan etmeye zorlar. Temsilci kullanmaya çalıştığımda, hata bir Temsilci yöntemi bir grup dönüştürebilirsiniz! " diyerek derlemek istiyorum.

Axial üzerinde çalışıyorum ve kullanıcıların web hizmetleri aramak için izin vermek için çalışıyorum. Yapmaya çalıştığım Visual Studio proxy sınıf oluşturmak ve oluşturulan fonksiyon geçmek için yeteneğidir. İşlev imzası oluşturulan kod sadece fonksiyon adını kullandığı için bir önemi yok. Ancak, isterim geçişte işlevi yerine adı için iki sebep: bu yeteneği kullanmak için proxy Url özelliğini ve bir derleyici hata varsa web hizmeti yok veya profesyonel olarak Visual Studio.


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

CEVAP
19 Aralık 2008, Cuma


Ne istediğinizi sanıyorum

static object InvokeMethod(Delegate method, params object[] args){
    return method.DynamicInvoke(args);
}

static int Add(int a, int b){
    return a   b;
}

static void Test(){
    Console.WriteLine(InvokeMethod(new Func<int, int, int>(Add), 5, 4));
}

"". 9 yazdırır

Bunu Paylaş:
  • Google+
  • E-Posta
Etiketler:

YORUMLAR

SPONSOR VİDEO

Rastgele Yazarlar

  • LimeFire

    LimeFire

    2 ŞUBAT 2012
  • Press Start

    Press Start

    4 HAZİRAN 2006
  • YAN TV

    YAN TV

    20 EKİM 2011