Func与Action都是系统定义好的委托(Delegate)类型,与普通的委托类型相比,Func与Action有一套封装好的方法,其中Func必须有返回值,而Action不能有返回值,因为这两个都是泛型方法,所以需要在使用时引入传入参数的类型,两种委托类型都可以引入0-16个参数类型(注意是参数类型,不是参数)
Func使用实例
Func<int> func = f1;//当Func只引入一个参数类型时,这个参数表示返回值 int f1() { Console.WriteLine("f1"); return 1; } Func<string, bool, int> func2 = f2;//当Func引入多个参数类型时,最后一个参数类型代表返回值类型 int f2(string a,bool b) { Console.WriteLine("f2"); return 2; }
Action使用实例
Action action1 = a1;//Action不引入参数类型,表示没有参数也没有返回值 void a1() { Console.WriteLine("a1"); } Action<int> action2 = a2;//Action引入一个参数类型,表示只传入一个int类型参数 void a2(int i) { Console.WriteLine("a2"); } Action<int, string, int> action3 = a3;//Action引入多个参数类型,表示传入多个类型的参数 void a3(int a,string b,int c)//需要注意的是,赋值给Action和Func的方法必须按照引入类型的顺序传入参数,否则会报错没有此重载 { Console.WriteLine("a3"); }
标签:WriteLine,int,类型,参数,Func,Action,NET From: https://www.cnblogs.com/lrplrplrp/p/16749048.html