.NET Func与Action

  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");
}

 

posted @ 2022-10-02 17:10  lrplrplrp  阅读(95)  评论(0编辑  收藏  举报