功能,c#,delegates,action,func"/>

首页 > 解决方案 > 如何转换函数功能

问题描述

我有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 只会得到一个没有参数的委托。

标签: c#delegatesactionfunc

解决方案


推荐阅读