У меня есть 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 получал только делегат без параметров.