在C#中,Func 和 Action 是两种常见的泛型委托类型。当你需要代表一个函数或方法的委托时,C#中的泛型委托 Func 和 Action 变得非常有用。
Action
Action 是一个代表不返回值的委托。它可以接受从零到 16 个输入参数。如果你有一个方法不返回任何内容,你可以使用 Action。
Action用法示例:
// Action 不返回值,接受一个整数和一个字符串参数
Action<int, string> myAction = (x, y) => Console.WriteLine($"Integer: {x}, String: {y}");
// 调用 Action
myAction(10, "Hello");
Func
Func 代表一个具有返回值的委托。它的最后一个泛型参数表示返回值类型,前面的参数表示输入参数类型。它可以接受从零到 16 个输入参数。
Func用法示例:
// Func 接受一个整数和一个字符串参数,并返回一个布尔值
Func<int, string, bool> myFunc = (x, y) =>
{
Console.WriteLine($"Integer: {x}, String: {y}");
return true;
};
// 调用 Func
bool result = myFunc(5, "World");
Func和Action的用法说明:
灵活性:这两种泛型委托提供了更大的灵活性。你可以根据方法的需要指定输入参数和返回类型。 参数数量:两者都支持不同数量的参数,但 Action 永远不返回值,而 Func 总是返回一个值。 代表方法:可以将它们用作方法的参数,这在需要动态指定要调用的方法时非常有用。这些泛型委托在使用 LINQ、异步编程和事件处理等情况下特别有用。它们能够简化代码并提高可读性,允许以一种更灵活的方式处理函数和方法。

站心网
在C#中,Func 和 Action 是两种常见的泛型委托类型。当你需要代表一个函数或方法的委托时,C#中的泛型委托 ..
为您推荐
.NET C# Predicate泛型委托使用方法
.NET
2025年03月15日
Predicate泛型委托:表示定义一组条件并确定指定对象是否符合这些条件的方法。此委托由 Array 和 List 类的几种方法使用,用于在集合中搜索元素。 Predicate<T> 通常用于集合的筛选或搜索操作,比如在 List<T> 的 Fi..

.NET C#中的Func、Predicate和Expression用法详解
程序笔记
2024年12月26日
在 .NET C# 中,Func、Predicate 和 Expression 是非常常见的委托类型和表达式树,广泛用于函数式编程、数据查询(如 LINQ)以及表达式编译等场景。以下是它们的详细用法和区别。1. FuncFunc 是一个通用委托,用于表..
SQL语句中的EXISTS用法示例
程序笔记
2024年12月26日
EXISTS 是 SQL 中用于判断子查询是否返回结果的关键字。它通常用于 WHERE 子句中,结合子查询一起使用。如果子查询返回至少一行数据,EXISTS 会返回 TRUE,否则返回 FALSE。EXISTS 用法示例假设有两个表:employees..
ASP.NET Core 中常用的内置中间件
程序笔记
2024年11月19日
中间件用于在 HTTP 请求之前和之后添加额外的逻辑。我们可以创建自定义中间件,并且有大量可用的内置中间件可供我们使用。本文旨在解释文件中常见中间件的用途 ,以及一些额外的中间件组件。1. 静态文件中间件直接从..

.NET9 开始删除内置的 Swagger 支持 可使用Scalar.AspNetCore替代
程序笔记
2024年11月14日
Microsoft 已决定从 .NET 9 中删除内置的 Swagger 支持 (Swashbuckle)。为什么 Swagger (Swashbuckle) 被删除?ASP.NET Core 团队已决定从 .NET 9 中删除内置的 Swagger 支持 (Swashbuckle),原因如下:维护问..

高效且灵活的C++库Vince's CSV Parser用法示例
程序笔记
2024年10月22日
在当今的软件开发中,数据的处理和分析占据了核心地位。而CSV(逗号分隔值)文件格式因其简洁性和广泛的兼容性,成为数据交换的常用格式。然而,处理CSV文件并非易事,尤其是当文件规模庞大或格式复杂时。为了解决这..

c# ThreadPool使用方法
程序笔记
2024年10月18日
ThreadPool类提供一个线程池,该线程池可用于发送工作项、处理异步 I/O、代表其他线程等待以及处理计时器。 线程池通过为应用程序提供一个由系统管理的辅助线程池使您可以更为有效地使用线程。一个线程监视排到线程..
Parallel.ForEach和Foreach.For用法
程序笔记
2024年10月18日
.Net4.0中提供了新的命名空间:System.Threading.Tasks,用于提供并行计算的相关类,这里我主要介绍一个简单的类:Parallel,用于提供对并行循环和区域的支持。 简单来说,Parallel可以把一个普通的for或者foreac..
ASP.NET Core 2.1中的ActionResult<T>
程序笔记
2024年10月16日
ASP.NET Core 2.1的一个新功能是,一个名为ActionResult<T>的新类型,它允许您返回响应类型或任何操作结果,同时仍然指示响应类型。在这篇短文中,我们将看到如何使用ASP.NET Core 2.1中的新型ActionResult<T>,以及..

多播委托方法的增加和移除
程序笔记
2024年10月15日
什么是多播委托?委托都是继承自多播委托MulticastDelegate,一个委托包含多个方法称之为多播委托。+=给委托示例增加方法,形成方法链,如图所示,多播委托会顺序执行方法。-= 给委托示例移除方法,从方法链尾部开始..

.NET Core SkiaSharp替代System.Drawing的用法
程序笔记
2024年10月14日
在.NET 6中,微软官方建议把 System.Drawing.Common迁移到SkiaSharp库。因为System.Drawing.Common被设计为Window 技术的精简包装器,因此其跨平台实现欠佳。SkiaSharp是一个基于谷歌的Skia图形库(Skia.org)的用于..
.NET Core分部视图PartialView用法
程序笔记
2024年10月14日
什么时候用用分部视图?分部视图PartialView是执行下列操作的有效方式:将大型标记文件分解为更小的组件。在由多个逻辑部分组成的大型复杂标记文件中,在分部视图中处理隔开的每个部分是有利的。 标记文件中的代码是..
.NET Core 视图组件Component用法
程序笔记
2024年10月14日
视图组件Component视图组件与分部视图类似,但它们的功能更加强大。 视图组件不使用模型绑定,并且仅依赖调用时提供的数据。 本文是使用控制器和视图编写的,但视图组件也与 Razor Pages 一起编写。什么是视图组件?..
jwt是什么?.NET Core API如何使用JwtBearer验证
程序笔记
2024年10月12日
JWT是JSON Web Token的缩写,是一种开放标准(RFC 7519),用于在网络上以安全和可靠的方式传输信息。它是一种被广泛使用的跨域身份验证解决方案,可以将用户信息、访问权限等加密后存储在Token中,然后通过网络传输..

Blazor 框架支持表单并提供内置的输入组件:绑定到使用数据注释的模型的 EditForm 组件内置输入组件我们可以把Model绑定到EditForm的Model属性,然后使用Model属性的数据注释验证表单。启用数据注释验证需要 DataAnn..
.NET Core常用缓存中间件和他们的用法
程序笔记
2024年10月11日
Memory Cache 中间件:它是一个简单的缓存中间件,将数据存储在内存中。在.NET Core中使用内存缓存可以很方便地缓存数据,并且不需要外部依赖。使用方法如下:// 注册缓存服务services.AddMemoryCache();// 使用缓存..
.NET JWT使用方法示例
程序笔记
2024年10月07日
JSON Web Token(JWT)是一种用于在网络间传递声明的开放标准(RFC 7519),常用于对身份验证和授权信息进行安全传递。在.NET中,你可以使用一些库来轻松地创建和验证JWT。以下是一个简单的示例,演示如何在.NET中使..

VSCode插件CodeGPT配置使用方法图文教程
程序笔记
2024年10月03日
CodeGPT 是一款 Visual Studio Code 扩展插件,可以通过官方的 OpenAI API 使用 GPT-3 (预训练生成式转换器) 模型,在多种编程语言中生成、解释、重构和文档化代码片段。CodeGPT 可用于各种任务,例如代码自动完成、..
10个c#基础面试题和答案
程序笔记
2024年10月01日
以下是10个常见的 C# 基础面试题及其答案:C# 中的值类型和引用类型有什么区别?答案:值类型直接存储数据的值,而引用类型存储对数据的引用。值类型在栈上分配内存,而引用类型在堆上分配内存。什么是命名空间(Nam..
轻量级ORM框架Dapper用法
程序笔记
2024年09月30日
Dapper 是一个轻量级的 ORM 框架,它可以简化与数据库的交互。Dapper 使用 SQL 查询来访问数据库,并将查询结果映射到对象。Dapper 的优点轻量级:Dapper 的代码量非常小,非常适合小型项目。灵活:Dapper 提供了各..