Как конвертировать Fun c в удовольствие c<T> - PullRequest
0 голосов
/ 07 января 2020

У меня есть Func<object, bool> myDelegate и некоторые переменные, подобные этой:

object test = new object();

Как передать myDelegate методу, ожидающему аргумент Func<bool>:

class FuncT
{
    static void Main(string[] args)
    {
        object test = new object();
        Func<object, bool> myDelegate = (x) => x != null;

        // how to pass myDelegate to methodName so that it evaluates against 'test'?
        methodName(myDelegate);
    }

    static void methodName(Func<bool> criteria)
    {
        Console.Out.WriteLine("Criteria: {0}", criteria());
    }
}

В качестве альтернативы я могу изменить метод, чтобы иметь сигнатуру типа void methodName(object a, Func<object, bool> criteria) и вызывать ее methodName (test, myDelegate), но почему? У меня уже есть test переменная типа объекта, поэтому я бы хотел сказать myDelegate, чтобы она использовалась внутри метода, чтобы methodName получал только делегат без параметров.

...