码迷,mamicode.com
首页 > 其他好文 > 详细

6.6 类型推断

时间:2014-11-16 12:05:41      阅读:163      评论:0      收藏:0      [点我收藏+]

标签:io   ar   sp   on   代码   bs   nbsp   c   方法   

6.6 类型推断

 

我们曾经讨论过值的类型推断,知道在 C# 3.0 中用 var 关键字,在 F#中用 let 绑定。从本节开始,我们将讨论由 C# 和 F# 共有的另一个方面,当在 C# 中调用泛型方法时,如 Option.Some(清单 5.9)或 Option.Map(清单 6.13),可以显式指定类型参数值,像这样:

 

var dt = Option.Some<DateTime>(DateTime.Now);

var nt = dt.Map<DateTime, int>(d=> d.Year);

 

这种写法太冗长了,在前面的例子中,我们几乎从来不用这样写代码,因为 C# 能够对泛型方法调用进行类型推理,可以自动推断类型参数值,因此,在前面的示例,我们可以只写成dt.Map(d => d.Year)。

在 C# 中类型推断理的过程非常复杂,但运行良好,通常深入了解并不重要;如果真的需要详细了解,可以在 C# 语言规范 [ECMA 2006] 或深入 C# [Skeet 2008] 中找到完整的文档。类型参数值是从正常的方法参数值推断的,用匿名函数获得特殊的处理,使整个过程更顺畅;另外要注意,在 C# 3.0 中,参数的顺序并不重要。


6.6 类型推断

标签:io   ar   sp   on   代码   bs   nbsp   c   方法   

原文地址:http://blog.csdn.net/hadstj/article/details/41171567

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!