SORU
17 Ocak 2010, Pazar


Parametre olarak geçirmek Yöntem kullanarak C#

Birkaç yöntem aynı imza (parametreleri ve dönüş değerleri) ama farklı isimler var ve yöntemlerin iç yapıları farklıdır. Geçti yöntemi çağıracağı başka bir yöntem çalıştırmak için bu yöntemin adı geçmek istiyorum.

public int Method1(string)
{
    ... do something
    return myInt;
}

public int Method2(string)
{
    ... do something different
    return myInt;
}

public bool RunTheMethod([Method Name passed in here] myMethodName)
{
    ... do stuff
    int i = myMethodName("My String");
    ... do more stuff
    return true;
}

public bool Test()
{
    return RunTheMethod(Method1);
}

Bu kod çalışmıyor ama bunu yapmak için çalışıyorum. Benim anlamadığım parametre tanımlamak gerekiyor beri RunTheMethod kodu yazmak için nasıl.

CEVAP
17 Ocak 2010, Pazar


İşlev temsilci olarak kullanabilirsiniz .RunTheMethod yöntemi parametre olarak net 3.5. İşlev temsilci, belirli bir türde bir dizi parametre alan bir yöntemi belirlemenizi sağlar ve belirli bir türü için tek bir bağımsız değişken döndürür. Burada çalışması gerektiğini bir örnek:

public class Class1
{
    public int Method1(string input)
    {
        //... do something
        return 0;
    }

    public int Method2(string input)
    {
        //... do something different
        return 1;
    }

    public bool RunTheMethod(Func<string, int> myMethodName)
    {
        //... do stuff
        int i = myMethodName("My String");
        //... do more stuff
        return true;
    }

    public bool Test()
    {
        return RunTheMethod(Method1);
    }
}

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

YORUMLAR

SPONSOR VİDEO

Rastgele Yazarlar

  • Android Central

    Android Cent

    13 Kasım 2008
  • Awesomesauce Network

    Awesomesauce

    4 EKİM 2012
  • The Amazing Atheist

    The Amazing

    20 Kasım 2006