定的形式来表示编码假设。这些协定利用运行时检查改进了测试,启用了静态协定验证并支持
文档生成。有关更多信息,请参见代码协定。
仅用于
设计时的互操作程序集
您不必再提供主互操作程序集 (PIA),即可部署与 COM 对象进行交互的应用程序。在 .NET Framework 4 中,编译器可以嵌入互操作程序集中的类型信息,仅选择应用程序(如外接程序)实际使用的类型。由公共语言运行时确保类型安全。请参见在托管代码中使用 COM 类型和演练:嵌入 Microsoft Office 程序集中的类型信息(C# 和 Visual Basic)。
动态语言运行时
动态语言运行时 (DLR) 是一种新运行时环境,它将一组适用于动态语言的服务添加到 CLR。借助于 DLR,可以更轻松地开发要在 .NET Framework 上运行的动态语言,而且向静态类型化语言添加动态功能也会更容易。为了支持 DLR,在 .NET Framework 中添加了新 System.Dynamic 命名空间。
表达式树由表示控制流的新类型(如 System.Linq.Expressions..::..LoopExpression 和 System.Linq.Expressions..::..TryExpression)进行了扩展。动态语言运行时 (DLR) 将使用这些新增类型,而 LINQ 不会使用。
此外,System.Runtime.CompilerServices 命名空间中还添加了多个支持 .NET Framework 基础结构的新类。有关更多信息,请参见动态语言运行时概述。
协变和逆变
现在,有多个泛型接口和委托支持协变和逆变。有关更多信息,请参见泛型中的协变和逆变。
BigInteger 和复数
新的 System.Numerics..::..BigInteger 结构是一个任意精度 Integer 数据类型,它支持所有标准整数运算(
包括位操作)。可以通过任何 .NET Framework 语言使用该结构。此外,一些新 .NET Framework 语言(例如 F# 和 IronPython)对此结构具有内置支持。
新的 System.Numerics..::..Complex 结构表示一个复数,它支持使用复数的算术运算和三角运算。
元组
.NET Framework 4 提供了用于创建包含结构化数据的元组对象的 System..::..Tuple 类。它还提供了泛型元组类以支持具有 1 到 8 个组件的元组(即,从单一实例到八元组)。为了支持具有 9 个或更多组件的元组对象,提供了一个具有 7 个类型参数和任何元组类型的第 8 个参数的泛型元组类。
文件系统枚举改进
新的文件枚举方法可以提高访问大文件目录或循环访问大文件中的行的应用程序的性能。有关更多信息,请参见如何:枚举目录和文件。
内存映射文件
.NET Framework 现在支持内存映射文件。可以使用内存映射文件编辑非常大的文件和创建共享内存以进行进程间
通信。
64 位操作
系统和进程
使用 Environment..::..Is64BitOperatingSystem 和 Environment..::..Is64BitProcess 属性可以标识 64 位操作系统和进程。
打开基项时,可以使用 Microsoft.Win32..::..RegistryView 枚举指定 32 位或 64 位注册表视图。
其他新增功能
以下列表介绍其他新增功能、改进和便利。其中的几个功能是根据客户建议增加的。
为了支持区分区域性的格式设置???System..::..TimeSpan 结构包含了 ToString、Parse 和 TryParse 方法的新重载,以及新的 ParseExact 和 TryParseExact 方法。
新的 String..::..IsNullOrWhiteSpace 方法指示字符串是否为 null、为空或仅包含空白字符。已向 String.Concat 和 String.Join 方法添加了可以连接 System.Collections.Generic..::..IEnumerable<(Of <(<'T>)>)> 集合的成员的新重载。
您可以使用 String..::..Concat 方法将可枚举集合中的每个元素连接在一起,而无需先将元素转换成字符串。
可以使用的两种新的简便方法是:StringBuilder..::..Clear 和 Stopwatch..::..Restart。
新的 Enum..::..HasFlag 方法确定在某个枚举值中是否设置了一个或多个位域或标志。Enum..::..TryParse 方法返回一个布尔值,指示能否成功分析