c#常用委托

Action 委托

封装一个方法,该方法不具有参数且不返回值。

public delegate void Action();

 

注解

可以使用此委托将方法作为参数传递,而无需显式声明自定义委托。 封装的方法必须与此委托定义的方法签名相对应。 这意味着封装的方法必须没有参数,也没有返回值。 (C# 中,该方法必须返回 void。 在 F# 中,函数或方法必须返回 unit。 在Visual Basic中,它必须由 ... 定义Sub``End Sub construct。 它也可以是返回忽略的值的方法。) 通常,此类方法用于执行操作。

 

备注
若要引用没有参数并返回值的方法,请改用泛型 Func<TResult> 委托。

Action委托有很多种类,总共16种,可以传入16个参数。

 

微软在文档上给了很详细的示例,从自己定义委托,到使用匿名方法,到使用Lambda,进化过程是完整的,可以仔细阅读学习。

 

参考资料:

https://docs.microsoft.com/zh-cn/dotnet/api/system.action?view=netframework-4.8

https://docs.microsoft.com/zh-cn/dotnet/api/system.action-2?view=netframework-4.8

 

Func<TResult> 委托

封装一个方法,该方法不具有参数,且返回由 TResult 参数指定的类型的值。

public delegate TResult Func<out TResult>();

注解

可以使用此委托来表示可以作为参数传递的方法,而无需显式声明自定义委托。 封装的方法必须与此委托定义的方法签名相对应。 这意味着封装的方法必须没有参数,并且必须返回值。

 

 

Func<T,TResult> 委托

封装一个方法,该方法具有一个参数,且返回由 TResult 参数指定的类型的值。

public delegate TResult Func<in T,out TResult>(T arg);

 

 

 

参考资料:

https://docs.microsoft.com/zh-cn/dotnet/api/system.func-1?view=netframework-4.8

https://docs.microsoft.com/zh-cn/dotnet/api/system.func-2?view=netframework-4.8

 

 

以上已经简单介绍了Action、Func<TResult>,这里只是列出有这两种常用的系统内置委托类型,具体使用和理解。请在参考资料中仔细阅读学习。

 

posted on   荆棘人  阅读(225)  评论(0编辑  收藏  举报

相关博文:
阅读排行:
· 阿里最新开源QwQ-32B,效果媲美deepseek-r1满血版,部署成本又又又降低了!
· AI编程工具终极对决:字节Trae VS Cursor,谁才是开发者新宠?
· 开源Multi-agent AI智能体框架aevatar.ai,欢迎大家贡献代码
· Manus重磅发布:全球首款通用AI代理技术深度解析与实战指南
· 被坑几百块钱后,我竟然真的恢复了删除的微信聊天记录!

导航

< 2025年3月 >
23 24 25 26 27 28 1
2 3 4 5 6 7 8
9 10 11 12 13 14 15
16 17 18 19 20 21 22
23 24 25 26 27 28 29
30 31 1 2 3 4 5

统计

点击右上角即可分享
微信分享提示