Может ли входящим параметром метода быть другой метод?

Можно ли, что бы во входящих параметрах метода, был другой метод? Т.е. из параметров вызывается другой метод, отрабатывает и возвращает значение, у же в данный метод?

Если можно, то тогда, получается должен стоять тип возвращаемого значения, в параметрах, перед другим методом.


Ответы (1 шт):

Автор решения: Aarnihauta

Можно. Это называется delegate. Их можно передавать в другие методы. Можете сами их декларировать, но обычно хватает Action и Func.

Вот пример:


private void Method(Func<string> action) //вместо string может быть что угодно
{
    string result = action?.Invoke();
    Console.WriteLine(result); 
}

Как использовать:

static void Main(string[] args)
{
    Method(() =>
    {
        return "C# > Java";
    }); //В консоль выведется "C# > Java"
}
→ Ссылка