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>,这里只是列出有这两种常用的系统内置委托类型,具体使用和理解。请在参考资料中仔细阅读学习。
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· 阿里最新开源QwQ-32B,效果媲美deepseek-r1满血版,部署成本又又又降低了!
· AI编程工具终极对决:字节Trae VS Cursor,谁才是开发者新宠?
· 开源Multi-agent AI智能体框架aevatar.ai,欢迎大家贡献代码
· Manus重磅发布:全球首款通用AI代理技术深度解析与实战指南
· 被坑几百块钱后,我竟然真的恢复了删除的微信聊天记录!