action-and-func.md
C# 的委托,到了 4.5+ 版本,已经发展的很友好了。
不再是之前的 delegate 自己定义,已经给我们内置了几个。可以解决绝大部分需求,又让大家的代码更符合规范。
总共分为 有返回值 和 没有返回值 两类。
- 没有返回值,就用
Action
和Action<T>
最多支持0-16个参数。
public delegate void Action(); |
- 有返回值,使用
Func<T>
最多支持0-16个参数。最后一个是返回值。
public delegate TResult Func<in T1, in T2, out TResult>(T1 arg1, T2 arg2); |
- 还有个固定是
bool
类型返回值的定义Func<T, bool>
==>Predicate<T>
多用在比较器上。
public delegate bool Predicate<in T>(T obj); |