C# 4.0: .NET Framework 4 中的新 C# 功能
2010-09-30 22:47:01 来源:WEB开发网另外,此功能需要运行时的支持,但这项支持早就存在了。可是由于没有什么语言用到这项支持,它已经沉寂了好几个版本。同样,前几个版本的 C# 允许一些有限的逆变转换。特别是,它们允许您使用具有兼容返回类型的方法来生成委托。此外,数组类型始终都是协变的。这些既有的功能与 C# 4.0 中的新功能截然不同,后者实际上是允许您定义自己的类型,使类型中的部分类型参数支持协变和逆变。
动态调度
在 C# 4.0 中的互操作功能方面,我们将首先介绍有可能是最大的变化。
C# 现在支持动态后期绑定。该语言以前始终是强类型的,在 4.0 版中仍将是这样。Microsoft 认为这会使 C# 快捷易用,适合 .NET 程序员交给它的所有任务。但有时候,您需要与不是基于 .NET 的系统通信。
通常,至少有两种方法可以实现此目的。第一种方法是直接将外部模型作为代理导入到 .NET 中。COM Interop 就是一个这样的例子。自从最初发布 .NET Framework 以来,它就通过一种名为 TLBIMP 的工具实施了这种策略:该工具可以创建您能够直接在 C# 中使用的新 .NET 代理类型。
C# 3.0 中附带的 LINQ-to-SQL 包含一种名为 SQLMETAL 的工具,可以将现有的数据库导入到 C# 代理类中,以便与查询结合使用。您还可以找到一种工具,用于将 Windows Management Instrumentation (WMI) 类导入到 C# 中。许多技术都允许您编写 C#(通常带有特性),然后使用手写代码作为外部操作的基础来执行互操作,这样的技术包括:LINQ-to-SQL、Windows Communication Foundation (WCF) 和序列化。
第二种方法完全放弃了 C# 类型系统,而将字符串和数据嵌入到代码中。当您编写代码来调用 JScript 对象的方法或者在 ADO.NET 应用程序中嵌入 SQL 查询时,您实际上就采用了这种方法。甚至您使用反射将绑定推迟到运行时(在这种情况下是与 .NET 本身进行互操作),实际上也是采用了这种方法。
- ››功能强更实用 Win7库变为“计算机”
- ››功能最全!网管必备子网划分计算工具!
- ››Netpas加速 让非电信宽带用户流畅上网
- ››net中fckediter的图片上传时候点击\浏览服务器\出...
- ››Netmsg局域网聊天程序
- ››NetAirus指控苹果iPhone侵犯其专利
- ››Netflix 在线影视播放程序将登陆 iPhone
- ››Net中各种不同的对象创建方式的速度差异
- ››NetNewsWire 功能简单 界面快速 Reader 浏览器
- ››功能完整的 Google Reader 离线浏览器 Byline 介绍...
- ››NET-使用Js调用WebService
- ››Net 应用程序如何在32位操作系统下申请超过2G的内...
更多精彩
赞助商链接