.NET C#委托类型Func和Action用法
2024-08-21
22
在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查询、事件处理等情况。
更新于:27天前赞一波!3
相关文章
- c#反编译工具推荐
- 2023年.NET常见面试题和答案
- c#网页保存为图片
- 企业项目选择.NET6还是.NET8?
- C# dynamic和object的区别
- 本机AOT与ASP.NET Core配合使用的优势
- .Net8 AOT有什么新特性
- 什么是.NET全家桶?
- .NET性能分析工具MiniProfiler使用示例
- C# KeyPress和KeyDown的区别
- .NET中运行Java代码
- .NET Core判断发起请求的设备
- .NET8 IExceptionHandler用法
- C#中使用Cancellation取消异步任务
- 使用IKVM.NET在.NET中运行Java代码
- .NET Core判断浏览器类型
- C#检测文件夹内的文件变化
- .NET官方日志库Microsoft.Extensions.Logging用法
- C#12最新语法糖示例
- .NET MVC和Razor Page对比
文章评论
全部评论