C#之Action委托与Func委托

Action与Func的区别:

Action 不能指向有返回值的方法 , 不能有返回值 。Func 可以指向有一个返回值的方法, 且必须有返回值

Action简介:

C#中与预定义了一个委托类型Action
它默认可以指向一个没有返回值,没有参数的方法。

1.Action基本使用

static void printString(){
  Console.WriteLine("Hello World");
}

static void Main(String[] args){
  Action a = printString;
  a(); // 输出结果  Hello World
}
  1. Action指向有参数的方法
static void printNumber(int x){
    Console.WriteLine(x);
}

static void Main(String[] args){
  Action<int> a = printNumber; // 定义一个指向 形参为int的函数
  a(5); // 输出结果  5
}

Action可以通过泛型来指定,指向的方法有 0 - 16个参数

Action<int, int, string, bool 等等>

Func简介

Func 也是C#预定义的委托, 且可以指向带有一个返回值的方法,传递0-16个参数。

  1. 指定返回值
static int GetNumber()
{
    return 1;
}

static void Main(string[] args)
{
 Func<int> a = GetNumber; // 定义一个Func 委托,  指向一个返回int类型的 方法
 Console.WriteLine(a());
}

2.指定参数和返回值的例子

注意:Func<string, int> 最后一个参数表示返回值类型,前面的都是形参类型。

static int Test2(string str){
  return 1;
}

static void Main(string[] args){
 Func<string, int> a = Test2; // 泛型中最后一个参数表示返回值类型。
 Console.WriteLine(a("a"));
}
最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
【社区内容提示】社区部分内容疑似由AI辅助生成,浏览时请结合常识与多方信息审慎甄别。
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

推荐阅读更多精彩内容