Action和Func

这两个方法是.net3.5里的关键字

主要用来创建委托,感觉跟Tuple差不多

记录一个例子,加强印象

如果没有这两个关键字,我们可能要这么写

        private delegate string JiSuan(int a, int b);
        public static void Main()
        {
            JiSuan jsuan = new JiSuan(JiSuanFunction);
            Console.Write("计算结果:{0}", jsuan(3, 8));
        }
        private static string JiSuanFunction(int a,int b)
        {
            return (a * b).ToString();
        }

 

现在可以用简单的办法写了

        public static void Main()
        {
            Func<int, int, string> jsuan = new Func<int, int, string>(JiSuanFunction);
            Console.Write("计算结果:{0}", jsuan(3, 8));
        }
        private static string JiSuanFunction(int a,int b)
        {
            return (a * b).ToString();
        }

最后一个类型是返回值的类型

当然了,如果是空方法,没有返回值

那么就用Action了,嘿嘿 两个是一致的

这两个关键字都是最高能支持16个参数

 

例如

Func<T,TResult>

Func<T,T1,TResult>

Func<T,T1,T2,TResult>

Func<T,T1,T2,T3,TResult>

Func<T,T1,T2,T3,T4,TResult>

你可能感兴趣的:(Action和Func)