首页 > 技术文章 > C# 的 Func<T> Action<T> Predicate<T>

u1w2 2019-05-30 15:56 原文

 
         void Demo_Func_Action( )
        {
            Func<double, double, double> func = UseByFunc;
            Action<double, double> action = UseByAction;
            Predicate<double> predicate = UseByPredicate;

            Console.WriteLine("Func 返回:{0}", UseByFunc(10, 20));  
            Console.WriteLine("Predicate 返回:{0}", predicate(1));
        }

        // 将会给Func用,因为Func是可以返回结果的
        public double UseByFunc(double x, double y)
        {
            return x + y;
        } 

        //给Action用,因为Action是不返回的
        public void UseByAction(double x, double y)
        {
            Console.WriteLine("Action 内部结果:{0}",x-y);
        }

        public bool UseByPredicate(double a) {
            return true;
        }

 

 

总结:

1.Func<T>是有返回值的泛型委托,格式为Func<T1,T2,T..N,TResult>,T1,T2,T..N为多个参数,TResult为返回值

2.Ation<T>是没有返回值的泛型委托,格式为Action<T1,T2,T..N>,T1,T2,T..N为多个参数

3.Predicate<T>是返回值为Bool的泛型委托,相当于Func<T,bool>,主要用于校验,检查等

推荐阅读