首页 新闻 会员 周边 捐助

泛型委托的返回类型TResult能隐式的转为Func<T, TResult>

0
悬赏园豆:100 [已解决问题] 解决于 2010-01-29 10:12

刚看了老赵大哥的一篇博文。看到一个方法,有点想不明白。方法如下:

 

static Func<T, TResult> Wrap<T, TResult>(Func<T, TResult> func,string messgaeFormat)
{
return i =>
{
var result
= func(i);
Console.WriteLine(messgaeFormat, i, result);
return result;
};
}

 

不明白处为 var result = func(i);这句确定了result 为TResult类型,但它返回returnresult;的是Func<T, TResult>即func(i)这个方法的委托,还有Console.WriteLine(messgaeFormat, i, result);这句result的值是func(i)算出来的值。问这是把TResult类型隐式的转化成了Func<T, TResult>了么?

阿松的主页 阿松 | 小虾三级 | 园豆:601
提问于:2010-01-27 10:52
< >
分享
最佳答案
0

return result只是你方法里的另一个方法的返回值,而外层方法的返回值是i => {xxxxxx};,是一个Func<T, TResult>类型

收获园豆:100
Gray Zhang | 专家六级 |园豆:17610 | 2010-01-27 21:51
哦。。。是的是的。。我竟然没有看到外面有个return 。眼睛不好使了 呵呵。。。
阿松 | 园豆:601 (小虾三级) | 2010-01-29 10:12
清除回答草稿
   您需要登录以后才能回答,未注册用户请先注册