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 2022-04-29 10:52  荆棘人  阅读(219)  评论(0编辑  收藏  举报

导航