.NET C#委托类型Func和Action用法
2024-08-21
67
在C#中,Func和Action都是委托(delegate)类型,它们允许您将方法作为参数传递给其他方法,或者用于定义可以在稍后调用的方法。
Func 和 Action 在不同的场景下都有广泛的应用,它们提供了一种方便的方式来处理委托和函数式编程的概念。这些是它们常见的使用场景:
Action 的使用场景:
事件处理:当您需要指定一个不返回值的回调函数时,比如按钮点击时执行的操作。 异步操作:在异步编程中,可以使用 Action 作为回调,处理异步操作完成后的行为。 无返回值的批处理:在需要执行一系列操作但不需要返回结果时,可以使用 Action 将这些操作打包在一起。 简化代码:用于简化参数化操作,例如执行一些设置或配置的函数。Func 的使用场景:
LINQ:Func 可以作为 LINQ 查询中的条件和选择器,使得代码更为简洁和可读。 延迟加载:使用 Func 可以在需要时延迟加载数据,只有在需要结果时才会执行方法获取值。 数据转换:在需要对数据进行转换的情况下,Func 可以作为转换函数。 验证:Func 可以用于验证输入数据并返回布尔值作为验证结果。 工厂方法:用于创建对象或执行工厂操作,根据输入参数返回对应类型的对象或结果。Action 用法示例
Action 是一个委托类型,它不返回任何值(void)。它可以用于表示不带参数且不返回值的方法,或者带有参数但不返回值的方法。
// 不带参数的 Action
Action printHello = () => Console.WriteLine("Hello!");
printHello(); // 调用这个 Action
// 带参数的 Action
Action<string> greet = (name) => Console.WriteLine($"Hello, {name}!");
greet("Alice"); // 调用带参数的 Action
Func 用法示例
Func 也是一个委托类型,它表示具有一个返回值的方法。它的最后一个类型参数表示返回值的类型,而前面的参数表示方法的参数类型。
// 不带参数的 Func,返回 int 类型的值
Func<int> getRandomNumber = () => new Random().Next(1, 100);
int number = getRandomNumber(); // 调用这个 Func 来获取一个随机数
// 带参数的 Func,接受两个 int 参数并返回它们的和
Func<int, int, int> add = (a, b) => a + b;
int sum = add(5, 3); // 调用带参数的 Func 来得到结果
无论是 Action 还是 Func,您都可以使用它们来简化方法的传递和使用。它们通常用于委托异步操作、LINQ查询、事件处理等情况。
更新于:3个月前赞一波!3
相关文章
- .NET C# EntityFramework(EF)连接SQLite代码示例
- Sylvan.Data.Excel 性能优异的开源.NET Excel数据读取库
- ASP.NET Core 中常用的内置中间件
- .NET9 F#有什么新特性?
- .NET 开源 ORM FreeSql 使用教程
- .NET9 C# 13 有哪些新特性?
- .NET9 开始删除内置的 Swagger 支持 可使用Scalar.AspNetCore替代
- .NET 9 中System.Text.Json 的新增功能
- 什么是.NET渐进式Web应用(PWA)
- .NET开发中常见的异常报错原因和解决方法?
- .NET框架和CLR的工作原理?
- ASP.NET MVC与Web Forms的区别
- C#中的String和StringBuilder的区别
- .NET C#中的IEnumerable和IEnumerator的区别
- 使用ADO.NET连接到南大通用GBase 8s数据库
- 鸿蒙OpenHarmony系统可以运行跨平台的.NET Core吗?
- ASP.NET Core使用partial标签报错
- .NET 9 即将推出的功能Task.WhenEach
- .NET 使用HttpClientFactory+Polly替代直接使用HttpClient
- C# Const 和 ReadOnly的区别
文章评论
评论问答