找回密码
 FreeOZ用户注册
查看: 1907|回复: 0
打印 上一主题 下一主题

[论坛技术] Lambda Expression

[复制链接]
跳转到指定楼层
1#
发表于 22-11-2010 14:02:04 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式

马上注册,结交更多好友,享用更多功能,让你轻松玩转社区。

您需要 登录 才可以下载或查看,没有帐号?FreeOZ用户注册

x
  1.         public delegate Func<T, R> SFunc<T, R>(SFunc<T, R> v);
  2.         public delegate Func<T, R> TFunc<T, R>(Func<T, R> v);
  3.         public delegate Func<T, R> YFunc<T, R>(TFunc<T, R> v);

  4.         static class util<T, R>
  5.         {
  6.                 public static readonly TFunc<T, R> ConvF = f => x => f(x);
  7.         }

  8.         Console.WriteLine(
  9.                 util<SFunc<int, int>, YFunc<int, int>>.ConvF
  10.                 (h => f => h(g => f(x => g(g)(x))))
  11.                 (f => f(f))
  12.                 (f => n => (n <= 1) ? 1 : n * f(n - 1))
  13.                 (10)
  14.         );
复制代码
这段简短代码集中了许多C#里应用Lambda Expression的技巧。请仔细体会。

问题:请写出最后那个Lambda表达式里面各个变量的类型。注意,同名的变量在不同的位置可能有不同的类型。

[ 本帖最后由 earthengine 于 22-11-2010 17:27 编辑 ]
回复  

使用道具 举报

您需要登录后才可以回帖 登录 | FreeOZ用户注册

本版积分规则

小黑屋|手机版|Archiver|FreeOZ论坛

GMT+11, 1-11-2024 18:24 , Processed in 0.028153 second(s), 17 queries , Gzip On, Redis On.

Powered by Discuz! X3.2

© 2001-2013 Comsenz Inc.

快速回复 返回顶部 返回列表