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

  • New Challenger - Game Reviews

    New Challeng

    20 Temmuz 2006
  • sonia989

    sonia989

    26 EKİM 2006
  • TSE

    TSE

    12 Kasım 2012