WEB开发网
开发学院软件开发C语言 C# 4.0: .NET Framework 4 中的新 C# 功能 阅读

C# 4.0: .NET Framework 4 中的新 C# 功能

 2010-09-30 22:47:01 来源:WEB开发网   
核心提示: 另外,此功能需要运行时的支持,C# 4.0: .NET Framework 4 中的新 C# 功能(5),但这项支持早就存在了,可是由于没有什么语言用到这项支持,您实际上就采用了这种方法,甚至您使用反射将绑定推迟到运行时(在这种情况下是与 .NET 本身进行互操作),它已经沉寂了好几个版本,同样

另外,此功能需要运行时的支持,但这项支持早就存在了。可是由于没有什么语言用到这项支持,它已经沉寂了好几个版本。同样,前几个版本的 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 本身进行互操作),实际上也是采用了这种方法。

上一页  1 2 3 4 5 6 7 8 9 10  下一页

Tags:NET Framework 功能

编辑录入:爽爽 [复制链接] [打 印]
赞助商链接