c#内置委托

本文介绍了C#语言中常用的内置委托类型Action、Func和Predicate,以及它们如何配合Lambda表达式简化方法定义和传递,提升代码可读性。
摘要由CSDN通过智能技术生成

C#语言中有许多内置的委托,其中一些是常用的,包括:

  1. Action:表示不带返回值的方法的委托。它可以接受多个参数,但不返回任何值。
Action<int, string> actionDelegate = (x, y) => Console.WriteLine("Action called with " + x + " and " + y);
  1. Func:表示带有返回值的方法的委托。它可以接受多个参数,并返回一个值。
Func<int, int, int> funcDelegate = (x, y) => x + y;
  1. Predicate:表示接受一个参数并返回布尔值的方法的委托。通常用于作为筛选条件。
Predicate<int> predicateDelegate = x => x > 10;

这些内置的委托提供了一种方便的方式来定义和传递方法,尤其在使用Lambda表达式时非常有用。通过使用这些内置委托,我们可以编写更简洁、易读的代码。

C#中的委托(Delegate)是一种引用类型,它可以引用具有特定参数列表和返回类型的方法。委托类似于C和C++中的函数指针概念,但是更加安全和功能强大。委托C#中扮演着非常重要的角色,特别是在事件驱动编程和异步编程中。 委托可以被实例化为一个对象,并且可以绑定一个或多个方法,这些方法需要与委托的签名相匹配。当你调用一个委托时,它会依次调用所有绑定的方法。委托是事件处理的基础。 C#内置了几种标准委托,它们分别对应不同的方法签名,主要包括: 1. Action:无返回值的方法委托,可以有0到16个参数。 2. Func:有返回值的方法委托,可以有0到16个参数。 3. Predicate:总是返回布尔值的方法委托,可以有0到16个参数。 例如,一个无参数无返回值的委托定义如下: ```csharp public delegate void Action(); ``` 一个带有一个int参数和返回int的方法的委托定义如下: ```csharp public delegate int Func<int>(); ``` 一个带有一个int参数并返回布尔值的委托定义如下: ```csharp public delegate bool Predicate<int>(int parameter); ``` 委托可以支持多播,即同时引用多个方法。你可以通过使用加号(+)运算符来将多个方法绑定到同一个委托对象上,使用减号(-)来解除绑定。 委托的使用示例: ```csharp public void Greet() { Console.WriteLine("Hello, World!"); } public void Inform() { Console.WriteLine("This is an informative message."); } // 创建委托实例 Action action = new Action(Greet); // 绑定第二个方法 action += Inform; // 调用委托,将依次执行Greet和Inform方法 action(); ``` 委托是.NET框架中事件模型的基础,也经常用在异步编程中,比如使用`Func<T>`和`Action<T>`作为`Task`的参数。此外,从C# 2.0开始,内置委托的使用在很大程度上被lambda表达式所简化。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值