函数 - Action、Func 与 Predicate 的区别


区别:

    action无法返回值,可以传入零个或多个参数

    func函数的使用,用法与普通函数差不多,最后一个参数为返回值,其他参数为为传进来的参数,注意必须要有返回值,但可以没有参数。

    Predicate函数用于条件判断,有参数有返回值,且只能返回bool类型

action具体实现:

//action的具体实现,action无法返回值,可以传入零个或多个参数
            string actionStr = "";
            //无参写法
            Action noparamAction = () =>
            {
                actionStr = "123";
            };
            Action<string, string> action = (m,n) =>
            {
                actionStr = m + n;
            };
            action("first", "second");
            //firstsecond
            Console.WriteLine(actionStr);

func具体实现:

            //func函数的使用,用法与普通函数差不多,最后一个参数为返回值,其他参数为为传进来的参数,注意必须要有返回值。
            //无参写法
            Func<int> noParamFunc = () =>
            {
                return 10;
            };
            Func<string,string,int> func= (m,n) => 
            {
                return (m + n).Length;
            };
            Console.WriteLine(func("dolph","toms"));

Predicate具体实现:

            List<int> list = new List<int> { 1, 3, 5, 23, 51, 2 };
            //Find的参数为Predicate
            int num = list.Find(m => m == 3);
            Console.WriteLine(num);

相关