木子屋 Dnawo's BLOG

.NET Framework 3.5新增泛型委托System.Func和System.Action

👤 dnawo 📅 2011-08-12 👁 7375 👍 0 💬 0 🔄 本站原创
在.NET Framework 3.5中,新增了个泛型委托System.Func,它有5个重载:

public delegate TResult Func<TResult>();
public delegate TResult Func<T, TResult>(T arg);
public delegate TResult Func<T1, T2, TResult>(T1 arg1, T2 arg2);
public delegate TResult Func<T1, T2, T3, TResult>(T1 arg1, T2 arg2, T3 arg3);
public delegate TResult Func<T1, T2, T3, T4, TResult>(T1 arg1, T2 arg2, T3 arg3, T4 arg4);

T1-T4表示委托封装的方法的参数类型,TResult表示方法返回值类型,可见,System.Func委托封装的方法允许带的参数最多可以达到4个。有了这些委托,在一些场合中,省了我们自己去定义委托的麻烦。

另一个委托是System.Action,它和System.Func基本一样,只是没有返回值:

public delegate void Action();
public delegate void Action<T>(T obj);
public delegate void Action<T1, T2>(T1 arg1, T2 arg2);
public delegate void Action<T1, T2, T3>(T1 arg1, T2 arg2, T3 arg3);
public delegate void Action<T1, T2, T3, T4>(T1 arg1, T2 arg2, T3 arg3, T4 arg4);


官方文档

[1].Func委托:http://msdn.microsoft.com/zh-cn/library/bb534303(v=VS.90).aspx
[2].Action委托:http://msdn.microsoft.com/zh-cn/library/system.action(v=vs.90).aspx

评论(0)

暂无评论。

计算题
评论需审核通过后显示
← 上一篇 Lambda表达式学习笔记 下一篇 → 儿呀,娘想做你家的一条狗