C# 的 Func<T> Action<T> Predicate<T>

自作多情 提交于 2020-01-21 11:41:58
 
         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>,主要用于校验,检查等

标签
易学教程内所有资源均来自网络或用户发布的内容,如有违反法律规定的内容欢迎反馈
该文章没有解决你所遇到的问题?点击提问,说说你的问题,让更多的人一起探讨吧!