当前位置:首页 > 科技  > 软件

C# 中的 Action 和 Func 委托

来源: 责编: 时间:2024-05-30 17:16:54 303观看
导读在C#中,Action<T>和Func<T>是两种常用的泛型委托,它们为开发者提供了一种类型安全的方式来定义和处理方法引用。Action<T>和Func<T>的主要区别在于,Action<T>用于封装没有返回值(即返回类型为void)的方法,而Func<T>则用于封

在C#中,Action<T>和Func<T>是两种常用的泛型委托,它们为开发者提供了一种类型安全的方式来定义和处理方法引用。Action<T>和Func<T>的主要区别在于,Action<T>用于封装没有返回值(即返回类型为void)的方法,而Func<T>则用于封装有返回值的方法。knf28资讯网——每日最新资讯28at.com

knf28资讯网——每日最新资讯28at.com

Action委托

Action<T>委托用于表示接受特定类型参数并不返回任何值(void)的方法。T在这里是一个占位符,代表委托可以接受的参数类型。Action<T>可以有多个类型参数,比如Action<T1, T2, ...>,最多可以支持16个类型参数。knf28资讯网——每日最新资讯28at.com

示例代码:knf28资讯网——每日最新资讯28at.com

using System;class Program{    static void Main()    {        // 定义一个 Action<string> 委托实例,并关联一个方法        Action<string> greet = Greet;                // 调用委托实例        greet("World");    }        static void Greet(string name)    {        Console.WriteLine($"Hello, {name}!");    }}

在这个例子中,我们定义了一个Greet方法,它接受一个字符串参数并不返回任何值。然后,我们创建了一个Action<string>委托实例,并将其关联到Greet方法上。最后,我们通过委托实例调用了Greet方法。knf28资讯网——每日最新资讯28at.com

Func委托

与Action<T>不同,Func<T>委托用于表示具有返回值的方法。Func<T>的第一个类型参数是输入参数的类型,最后一个类型参数是返回值的类型。例如,Func<int, int>表示接受一个int参数并返回一个int值的方法。knf28资讯网——每日最新资讯28at.com

示例代码:knf28资讯网——每日最新资讯28at.com

using System;class Program{    static void Main()    {        // 定义一个 Func<int, int> 委托实例,并关联一个方法        Func<int, int> square = CalculateSquare;                // 调用委托实例并打印结果        int result = square(5);        Console.WriteLine($"The square of 5 is {result}.");    }        static int CalculateSquare(int number)    {        return number * number;    }}

在这个例子中,我们定义了一个CalculateSquare方法,它接受一个整数参数并返回一个整数结果。然后,我们创建了一个Func<int, int>委托实例,并将其关联到CalculateSquare方法上。最后,我们通过委托实例调用了CalculateSquare方法,并打印了结果。knf28资讯网——每日最新资讯28at.com

总结

Action<T>和Func<T>委托是C#中非常有用的工具,它们提供了一种简洁、类型安全的方式来引用和调用方法。通过使用这些委托,开发者可以更加灵活地编写可重用的代码,并轻松地实现回调函数和事件驱动的设计模式。在实际开发中,根据方法是否有返回值来选择使用Action<T>还是Func<T>委托是非常重要的。knf28资讯网——每日最新资讯28at.com

本文链接:http://www.28at.com/showinfo-26-91823-0.htmlC# 中的 Action 和 Func 委托

声明:本网页内容旨在传播知识,若有侵权等问题请及时与本网联系,我们将在第一时间删除处理。邮件:2376512515@qq.com

上一篇: 十个经典 Python 设计模式解析

下一篇: C语言字符串为什么以/0 作为结束标志?

标签:
  • 热门焦点
  • Mate60手机壳曝光 致敬自己的经典设计

    8月3日消息,今天下午博主数码闲聊站带来了华为Mate60的第三方手机壳图,可以让我们在真机发布之前看看这款华为全新旗舰的大致轮廓。从曝光的图片看,Mate 60背后摄像头面积依然
  • 6月iOS设备好评榜:第一蝉联榜首近一年

    作为安兔兔各种榜单里变化最小的那个,2023年6月的iOS好评榜和上个月相比没有任何排名上的变化,仅仅是部分设备好评率的下降,长年累月的用户评价和逐渐退出市场的老款机器让这
  • JavaScript学习 -AES加密算法

    引言在当今数字化时代,前端应用程序扮演着重要角色,用户的敏感数据经常在前端进行加密和解密操作。然而,这样的操作在网络传输和存储中可能会受到恶意攻击的威胁。为了确保数据
  • 使用AIGC工具提升安全工作效率

    在日常工作中,安全人员可能会涉及各种各样的安全任务,包括但不限于:开发某些安全工具的插件,满足自己特定的安全需求;自定义github搜索工具,快速查找所需的安全资料、漏洞poc、exp
  • 本地生活这块肥肉,拼多多也想吃一口

    出品/壹览商业 作者/李彦编辑/木鱼拼多多也看上本地生活这块蛋糕了。近期,拼多多在App首页&ldquo;充值中心&rdquo;入口上线了本机生活界面。壹览商业发现,该界面目前主要
  • 猿辅导与新东方的两种“归途”

    作者|卓心月 出品|零态LT(ID:LingTai_LT)如何成为一家伟大企业?答案一定是对&ldquo;势&rdquo;的把握,这其中最关键的当属对企业战略的制定,且能够站在未来看现在,即使这其中的
  • 华为举行春季智慧办公新品发布会 首次推出电子墨水屏平板

    北京时间2月27日晚,华为在巴塞罗那举行春季智慧办公新品发布会,在海外市场推出之前已经在中国市场上市的笔记本、平板、激光打印机等办公产品,并首次推出搭载
  • 2021中国国际消费电子博览会与青岛国际软件融合创新博览会新闻发布会隆重举行

    9月18日,2021中国国际消费电子博览会与青岛国际软件融合创新博览会新闻发布会在青岛国际新闻中心隆重举行。发布会上青岛市政府领导联袂出席,对本次双展会情
  • 利用职权私自解除被封帐号 Meta开除20多名员工

    11月18日消息,据外媒援引知情人士表示,过去一年时间内,Facebook母公司Meta解雇或处罚了20多名员工以及合同工,指控这些人通过内部系统以不当方式重置用户帐号,其
Top