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

  • Commander Chalkboard

    Commander Ch

    20 Ocak 2014
  • HereWeStayKings

    HereWeStayKi

    3 NİSAN 2013
  • xSammyJoe1

    xSammyJoe1

    19 Temmuz 2011