C# action,delegate,func的用法和区别

YOLO创新点改进点的消融实验设计规范 YOLO改进的消融实验是一种重要的方法,用于评估和验证模型中不同组件的影响。在进行YOLO改进的消融实验时,我们可以选择一些可能的改进点,比如Backbone网络、Anchor框设计和损失函数设计,然后通过实验来分析它们对模型性能的影响。首先,我们需要确定实验设计。对于每个改进点,我们将设计多个实验组,并针对每个实验组训练模型并进行性能评估。这里以三个改进点为例进行说明:改进点1:Backbone网络 (改进点2:Anchor框设计 (改进点3:损失函数设计 ( 阅读详情

先说一下委托:

模拟一下场景:小明最近学习情绪高涨,以前买的书已经满足不了欲望,打算去买本(一个程序员的自我修养)。可是呢以前总是跑书厂买,nm,太远了扛不住,就去跑去附近书店去买,小明去给钱就弄了一本书回来,这个过程就是委托。开始分析

1:小明要买一本一个程序员自我修养的书籍(xx书就不买)硬性要求 (这就是要定义委托性质)

代码:

 private delegate void BuyBook();

2:附近书店 (委托的方法)

代码:

public static void Book(){    Console.WriteLine("我是提供书籍的");}

3:小明和书店建立关系(给委托绑定方法) 

代码: 

 BuyBook buybook = new BuyBook(Book);

4:小明给钱拿书(触发)

buybook();

上面的内容是为了能理解委托的用法下面呢我开始讲解Action和Func

Action的用法

1:小明很是苦恼,我就是买一本书籍,每次都让我定义下,烦死了,有没有一种方法不去定义委托呢,那么有吗,还真有,就是我们今天讲的Action

Action BookAction = new Action(Book);BookAction();

这样是不是就简单了很多

2:小明现在又不满意了,我把一个程序员的自我修养看完了,现在呢想买本其他书,那怎么办,我是不是要重新再次定义委托。其实不需要你只需要把参数穿过来就可以了。下面我们看Action<T>的用法

 static void Main(string[] args)        {            Action<string> BookAction = new Action<string>(Book);            BookAction("百年孤独");        }         public static void Book(string BookName)        {            Console.WriteLine("我是买书的是:{0}",BookName);        }

3:现在小明又改变主意了,我不仅要自己选择书籍,我还要在一个牛逼的书籍厂家买,有没有这种方式呢,那么告诉你有,Action<in T1,in T2>  

static void Main(string[] args)        {            Action<string,string> BookAction = new Action<string,string>(Book);            BookAction("百年孤独","北京大书店");        }         public static void Book(string BookName,string ChangJia)        {            Console.WriteLine("我是买书的是:{0}来自{1}",BookName,ChangJia);        }

Func的用法

小明又发生疑问了,每次我自己都去书店去拿书,有没有一种方法直接送到我家里呢,那么Func专门提供了这样的服务

Func 解释 封装一个不定具有参数(也许没有)但却返回 TResult 参数指定的类型值的方法。

1:我们先看一个没有参数只有返回值的方法

 static void Main(string[] args)        {            Func<string> RetBook = new Func<string>(FuncBook);            Console.WriteLine(RetBook);        }         public static string FuncBook()        {            return "送书来了";        }

2:有参数有返回值的方法

static void Main(string[] args){    Func<string,string> RetBook = new Func<string,string>(FuncBook);    Console.WriteLine(RetBook("aaa"));} public static string FuncBook(string BookName){    return BookName;}

3:Func一个很重要的用处就是传递值,下面我举一个简单的代码来说明

 Func<string> funcValue = delegate            {                return "我是即将传递的值3";            };             DisPlayValue(funcValue);

注释1:DisplayVaue是处理传来的值,比喻缓存的处理,或者统一添加数据库等

 private static void DisPlayValue(Func<string> func){            string RetFunc = func();            Console.WriteLine("我在测试一下传过来值:{0}",RetFunc);        }

总结

1:Action用于没有返回值的方法(参数可以根据自己情况进行传递)

2:Func恰恰相反用于有返回值的方法(同样参数根据自己情况情况)

3:记住无返回就用action,有返回就用Func

系统架构设计师备考攻略 计算机软件资格考试是由国家人力资源和社会保障部、工业和信息化部领导下的国家级考试。 软考没有学历、专业、年龄、相关工作经验要求,你可以根据自身选择合适的去报名(也就是说你直接直接报高级),但是一次考试只能报一种。 计算机软件资格考试纳入全国专业技术人员职业资格证书制度的统一规划,实行统一大纲、统一试题、统一标准、统一证书的考试办法,每年举行两次。通过考试获得证书的人员,表明其已具备从事相应专业岗位工作的水平和能力,用人单位聘任相应专业技术职务(助理工程师、工程师、高级工程师)。 阅读详情

相关推荐

FPGA实战:SRIO接口数据流控制与回环测试详解

本文详细解析了FPGA中SRIO接口的数据流控制机制与回环测试实战。通过剖析SRIO IP核的AXI4-Stream接口握手时序(tvalid/tready/tlast),重点阐述了HELLO数据包格式与状态机设计,并提供了完整的Verilog代码示例。文章以回环测试为核心验证手段,指导开发者排查常见问题,为FPGA高速互连通信设计提供实用指南。

weixin_29173777的博客 425

[C#]action,delegate,func的用法和区别

以前我都是通过定义一个delegate来写委托的,但是最近看一些外国人写的源码都是用action和func方式来写,当时感觉对这很陌生所以看起源码也觉得陌生,所以我就花费时间来学习下这两种方式,然后发现确实代码简洁了不少。这两种方式我们也可以去实践的过程去慢慢运用。 先说一下委托: 模拟一下场景:小明最近学习情绪高涨,以前买的书已经满足不了欲望,打算去买本(一个程序员的自我修养)。可是呢以前总是跑书厂买,nm,太远了扛不住,就去跑去附近书店去买,小明去给钱就弄了一本书回来,这个过程就是委托。开始分析 1:小

德仔 487

带你一分钟了解电感与磁珠的区别

在电路设计中会经常使用到电感和磁珠,虽然在电路中的作用有所不同,但它们都属于磁性电子元器件,本文简单介绍下电感和磁珠的区别电感和磁珠电感和磁珠的结构主要由磁性材料金属线圈和外壳组成,具体结构如下图所示:电感磁珠结构图电感其实是金属线圈缠绕在磁芯上,而磁珠是在内部折叠后外围包裹着铁氧体磁性材料。电感器(Inductor)又称扼流器、电抗器、动态电抗器是储能器件,能够把电能转化为磁能而存储起来的元件。磁珠则是能量转换(消耗)器件,将流过他的高频信号以热能的形式消耗掉。

攻城狮鹏哥 1409

C#委托 Delegate Action Func

声明委托,委托的声明与方法类似,只是需要在方法前加上 delegate 关键字,注:delegate与Delegate是有区别的,在声明时要用delegate。Func和Action用法基本一致,但是由于Func有返回值,最后一个对应返回值类型。Action委托,Func委托,它们是系统委托,不再需要。若多播委托取返回值,一般是得到最后执行事件的返回值。Action委托无返回值,有0个或多个参数。Func委托,有返回值,有0个或多个参数。声明一个参数为int型,无返回值的委托。

gyh1009的博客 572

c#算法(5)—最小二乘法(二次曲线拟合)

最小二乘法——二次曲线拟合

qq_34059233的博客 1659

游戏玩家和排行数据抓取:使用 Python 爬虫抓取游戏中的玩家排名、角色数据和战绩

对于游戏开发者、分析师和玩家本身来说,抓取游戏中的玩家排名、角色数据和战绩信息是一项至关重要的任务。Python提供了强大的爬虫库和数据处理工具,可以帮助我们高效地抓取和分析游戏数据,为游戏分析师、开发者以及玩家本身提供有价值的数据支持。通过本篇博客,我们学习了如何使用Python爬虫技术抓取游戏中的玩家排名、角色数据和战绩。本篇博客将详细介绍如何使用Python编写爬虫来抓取游戏中的玩家排名、角色数据和战绩,并结合最新的技术来实现高效的数据抓取与处理。为了方便后续的数据处理,我们将抓取的数据保存到。

2201_76125261的博客 944

Delegate、Action 与 Func 委托的全面解析

Action 和 Func 委托是 C# 中极其强大的工具​​简化代码​​:减少自定义委托类型的需要,使代码更简洁​​提高可读性​​:通过明确的命名表达意图​​增强灵活性​​:支持将方法作为参数传递,实现策略模式等​​与Lambda完美结合​​:支持使用简洁的Lambda表达式定义行为​​是LINQ的基础​​:Func委托是LINQ查询的核心组件。

lzt1027的博客 2126

【嵌入式硬件】LAN9253说明书(中文版)

LAN9253是一款2/3端口EtherCAT从站控制器,具有双集成以太网PHY,每个PHY包含一个全双工100 BASE-TX收发器,支持100 Mbps(100 BASE-TX)操作。 LAN 9253支持HP Auto-MDIX,允许使用直接连接或交叉LAN电缆。支持EtherCAT P和信号质量指数PHY诊断。 LAN9253包括一个EtherCAT从站控制器,带有8K字节的双端口存储器(DPRAM)和8个现场总线存储器管理单元(FMMU)。每个FMMU将逻辑地址映射到物

qq_39200110的博客 2529

Func和Action系统委托

为了方便开发,.net基类库针对在实际开发中最常用的情形提供了几个预定义好的委托,这些预定义委托用得很广。 Func,Action 的介绍及其用法Func是一种委托,这是在3.5里面新增的,2.0里面我们使用委托是用Delegate,Func位于System.Core命名空间下,使用委托可以提升效率,例如在反射中使用就可以弥补反射所损失的性能。Action<T>和Func&lt...

weixin_34409703的博客 103

【推荐100个unity插件】对话系统插件——YarnSpinner-Unity插件

Yarn Spinner是一款专为游戏对话设计的脚本语言,适用于Unity等引擎。本文介绍了在Unity中安装和使用Yarn Spinner的完整流程:首先通过Package Manager添加仓库并安装插件;然后创建Yarn Script和Project文件,配置对话系统;接着编写Yarn脚本定义对话内容,并展示运行效果;最后讲解了按键控制和多语言本地化设置。该工具采用类似剧本的简洁格式,支持分支对话、条件逻辑等功能,能有效提升游戏叙事的开发效率。

向宇的博客,专注php/web全栈 unity游戏开发,欢迎大家评论纠错 2212

农作物生长模型:数学建模与实战案例

在本篇博客中,我们介绍了农作物生长模型的基本原理,并结合Matlab代码和实战案例,演示了如何应用数学建模技术进行农作物生长模型的研究与应用。农作物生长模型在农业领域具有重要意义,希望本篇博客能帮助读者更好地理解农作物生长模型的原理和应用,并在实际农业生产中取得更好的效果。

YOLO 2734

C# 委托

C#委托

卿染 4337

优化点列图(RMS半径)的操作数

优化点列图(RMS半径)的操作数

weixin_72050316的博客 2256

C#委托详解

C#委托详解C#中的委托区别:用法示例使用委托可以实现类似多态功能:简易示例代码1 C#中的委托 C# 中的delegate、event、Action、Func都属于委托,只是展现的形式不同而已,无论哪种,其实都可以采用delegat实现 利用委托发布订阅模式可以实现观察者模式 – 传送门 delegate是很宽泛的,格式内容都不受限,俗话说没有规矩不成方圆,如果一人过于随意,那么他所做的事也规范不到哪去,这就会导致后期的维护很费劲,实际开发中也基本都用后面三种。 区别: delegate: 至少0个参

飞浪纪元FE的博客 214

Outlook Express 6 (OE6) for Win7/Win8/Win10

英文版 Outlook Express6.0, 兼容Win7/Win10/WinXP,解压就可用。

精雕软件(JDpaint) 5.5 绿色版

精雕软件(JDpaint) 5.5 绿色版精雕软件(JDpaint) 5.5 绿色版精雕软件(JDpaint) 5.5 绿色版

.Net——Func<>与Action<>

首先来先写几个测试函数: <span style="font-size:14px;"> public delegate void SayHello(string strName); public static void Hello(string...

weixin_34324081的博客 257

霍尼韦尔SoftMaster使用说明

霍尼韦尔SoftMaster使用说明

委托

转载自:http://www.cnblogs.com/LipeiNet/p/4694225.html     http://www.cnblogs.com/akwwl/p/3232679.html 在C#委托现在有4种方式,分别是 delegate、Action、Func、Predicate 模拟一下场景:小明最近学习情绪高涨,以前买的书已经满足不了欲望,打算去买本(一个程序员的自我修养...

weixin_30784141的博客 67

廖雪峰Python教程[完整版]

廖雪峰的python教程整理的,已经排好版了,而且还是完整的,适合小白

.NET Book Zero 读书笔记(一)(从C++的使用者角度学习C#)

一. 什么是.NET .NET .NET实际上是一堆动态链接库的集合,是一个大型的类的库,里面的东西可以用来做Web应用或客户端应用。.NET库并不是C#语言的专属,实际上任何语言都能使用.NET,但使用.NET库需要满足以下两个标准: 使用.NET库的语言必须满足对应的语言要求 使用.NET库的系统适用于第一条提出的编程语言,系统需要定义基本的数据成员(比如int,float,string) .........

alexhu2010q的博客 1039

delegate,Action和Func区别和用法

在程序开发里,有一种很常见的思想,叫委托,顾名思义就是A委托B做A想做的事情,具体实现就是A定义好函数(实现A想做的),然后把该函数以一种特殊的形式告知B,B来调用,在.Net里,这种特殊形式的实现方式有三种,delegate,Action和Func,下面逐一说明用法...

jklrty的专栏 5453

C#知识系列:delegate、event、EventHandler、Action、Func的区别

参考: C#知识点讲解之C#delegate、event、Action、EventHandler的使用和区别 C# Action 和 Func 区别

Cloud Flower的博客-专注unity 776

Unity C#中Delegate,Action,Func,Predicate的使用与区别

C#4.0推出后,类似Linq,Lamda表达式等许多新的程序写法层次不穷。与之相关的Delegate,Action,Func,Predicate的使用和区别也常常让大家迷惑,此处就结合实际的应用,对其进行详细的说明。 在书写代码时,常常会用到委托,这个在winform下较常见,但自定义Delegate时,我们常常发现Delegate必须全局可见,才能在需要的地方进行使用,而对于私有的del

TxNet 1万+

C# 中的delegate、event、Action、Func

都属于委托,只是展现的形式不同而已,无论哪种,其实都可以采用delegate实现,为什么会出现另外的三种呢?   因为delegate是很宽泛的,格式内容都不受限,俗话说没有规矩不成方圆,如果一人过于随意,那么他所做的事也规范不到哪去,这就会导致后期的维护很费劲,实际开发中也基本都用后面三种。 区别:   delegate:至少0个参数,至多32个参数,可以无返回值,也可以指定返回值类型。 ...

weixin_40200876的博客 4778

C# delegate 和action 的区别

比如,当需要特定签名的方法时,使用自定义delegate,但如果符合Action的参数要求,可以直接用Action,减少代码量。最后,总结使用场景,比如当需要特定名称的委托类型提高代码可读性时,使用自定义delegate;另外,需要注意Action是void返回类型的,而Func可以处理有返回值的情况,但用户的问题集中在Action上,所以可能需要提到这点,但不过多展开。一般来说,预定义的Action委托在性能上和自定义的没有明显差别,但使用预定义的可能更高效,因为它们是框架的一部分,优化过。

lcfengokok的博客 1414

c# 四种委托的区别【delegate 、action、func和predicate 】

c# 四种委托的区别和基础应用。

qq_39024280的博客 4466

C# 中delegate、event、Action、Func详解

因为delegate是很宽泛的,格式内容都不受限,俗话说没有规矩不成方圆,如果一人过于随意,那么他所做的事也规范不到哪去,这就会导致后期的维护很费劲,实际开发中也基本都用后面三种。Action<int,string,bool> 表示有传入参数int,string,bool无返回值的委托。Func<T1,T2,,T3,int> 表示传入参数为T1,T2,,T3(泛型)返回值为int的委托。Action<int,int,int,int> 表示有传入4个int型参数,无返回值的委托。而且只能+=和-=操作。

u011555996的博客 2766
上一篇: 什么是 JWT -- JSON WEB TOKEN ,理论部分
下一篇: 去掉 if...else 的七种绝佳之法...
11小猪会飞11
博客等级 码龄10年 210粉丝 70原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

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

抵扣说明:

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

余额充值