C# 2.0 语言和编译器中的新增功能(转MSDN)
2008-12-20 13:32
621 查看
随着 Visual Studio 2005 的发布,C# 语言已更新为 2.0 版,它支持下列新功能:
泛型
该语言中添加了一些泛型类型,使得程序员能够实现程度很高的代码重用,获得更高的集合类性能。泛型类型只存在 arity 上的不同。也可以将参数强制为特定的类型。有关更多信息,请参见泛型类型参数。
迭代器
迭代器使得规定 foreach 循环将如何循环访问集合的内容变得更加容易。
分部类
分部类型定义允许将单个类型(比如某个类)拆分为多个文件。Visual Studio 设计器使用此功能将它生成的代码与用户代码分离。
可空类型
可空类型允许变量包含未定义的值。在使用数据库和其他可能包含未含有具体值的元素的数据结构时,可以使用可空类型。
匿名方法
现在,可以将代码块作为参数来传递。在本应使用委托的任何地方,都可以使用代码块来取代:不需要定义新的方法。
命名空间别名限定符
命名空间别名限定符 (::) 对访问命名空间成员提供了更多控制。global :: 别名允许访问可能被代码中的实体隐藏的根命名空间。
静态类
若要声明那些包含不能实例化的静态方法的类,静态类就是一种安全而便利的方式。C# 1.2 版要求将类构造函数定义为私有的,以防止类被实例化。
外部程序集别名
通过 extern 关键字的这种扩展用法引用包含在同一程序集中的同一组件的不同版本。
属性访问器可访问性
现在可以为属性的 get 和 set 访问器定义不同级别的可访问性。
委托中的协变和逆变
现在传递给委托的方法在返回类型和参数方面可以具有更大的灵活性。
如何:声明、实例化和使用委托
方法组转换为声明委托提供了一种更简单的语法。
固定大小的缓冲区
在不安全的代码块中,现在可以声明包含嵌入数组的固定大小结构。
友元程序集
程序集可以提供对其他程序集的非公共类型的访问。
内联警告控制
#pragma 警告指令可用于禁用和启用某些编译器警告。
volatile
现在可以将 volatile 关键字应用于 IntPtr 和 UIntPtr。
此版本的 C# 编译器中引入了下列增加内容和更改内容:
/errorreport 选项
可用于通过 Internet 向 Microsoft 报告内部编译器错误。
/incremental 选项
已移除。
/keycontainer 和 /keyfile 选项
支持指定加密密钥。
/langversion 选项
可用于指定与特定语言版本的兼容性。
/linkresource 选项
包含附加选项。
/moduleassemblyname 选项
使您可以生成 .netmodule 文件并访问现有程序集中的非公共类型。
/pdb 选项
指定 .pdb 文件的名称和位置。
/platform 选项
使您可将 Itanium 系列 (IPF) 和 x64 结构作为目标平台。
#pragma warning
用于在代码中禁用或启用单个警告。
泛型
该语言中添加了一些泛型类型,使得程序员能够实现程度很高的代码重用,获得更高的集合类性能。泛型类型只存在 arity 上的不同。也可以将参数强制为特定的类型。有关更多信息,请参见泛型类型参数。
迭代器
迭代器使得规定 foreach 循环将如何循环访问集合的内容变得更加容易。
分部类
分部类型定义允许将单个类型(比如某个类)拆分为多个文件。Visual Studio 设计器使用此功能将它生成的代码与用户代码分离。
可空类型
可空类型允许变量包含未定义的值。在使用数据库和其他可能包含未含有具体值的元素的数据结构时,可以使用可空类型。
匿名方法
现在,可以将代码块作为参数来传递。在本应使用委托的任何地方,都可以使用代码块来取代:不需要定义新的方法。
命名空间别名限定符
命名空间别名限定符 (::) 对访问命名空间成员提供了更多控制。global :: 别名允许访问可能被代码中的实体隐藏的根命名空间。
静态类
若要声明那些包含不能实例化的静态方法的类,静态类就是一种安全而便利的方式。C# 1.2 版要求将类构造函数定义为私有的,以防止类被实例化。
外部程序集别名
通过 extern 关键字的这种扩展用法引用包含在同一程序集中的同一组件的不同版本。
属性访问器可访问性
现在可以为属性的 get 和 set 访问器定义不同级别的可访问性。
委托中的协变和逆变
现在传递给委托的方法在返回类型和参数方面可以具有更大的灵活性。
如何:声明、实例化和使用委托
方法组转换为声明委托提供了一种更简单的语法。
固定大小的缓冲区
在不安全的代码块中,现在可以声明包含嵌入数组的固定大小结构。
友元程序集
程序集可以提供对其他程序集的非公共类型的访问。
内联警告控制
#pragma 警告指令可用于禁用和启用某些编译器警告。
volatile
现在可以将 volatile 关键字应用于 IntPtr 和 UIntPtr。
此版本的 C# 编译器中引入了下列增加内容和更改内容:
/errorreport 选项
可用于通过 Internet 向 Microsoft 报告内部编译器错误。
/incremental 选项
已移除。
/keycontainer 和 /keyfile 选项
支持指定加密密钥。
/langversion 选项
可用于指定与特定语言版本的兼容性。
/linkresource 选项
包含附加选项。
/moduleassemblyname 选项
使您可以生成 .netmodule 文件并访问现有程序集中的非公共类型。
/pdb 选项
指定 .pdb 文件的名称和位置。
/platform 选项
使您可将 Itanium 系列 (IPF) 和 x64 结构作为目标平台。
#pragma warning
用于在代码中禁用或启用单个警告。
相关文章推荐
- C# 2.0 语言和编译器中的新增功能
- C# 2.0 语言和编译器中的新增功能
- EL(表达式语言 ) jsp2.0新增的功能
- C# 3.5 语言在 Visual Studio Orcas Beta 1 上的新增功能
- C#2.0新增功能快速回顾
- Visual Studio 及 .NET Framework 及 C#语言规范 的 版本对应 及C#新增功能
- ADO.NET 2.0 中的新增 DataSet 功能--性能提高40倍?(downmoon翻译自MSDN)
- Visual Studio 及 .NET Framework 及 C#语言规范 的 版本对应 及C#新增功能
- 使用C# 2.0实现语言无关的代码生成器
- ASP.NET 2.0 中的新增服务、控件与功能概述
- 晚上无聊象征性收取了网友100元辛苦费,实现支持多语言功能的XML语言包版的C#的ASP.NET多语言支持例子程序
- ASP.NET 2.0(C#) - Localization(本地化,多语言)
- c#2.0中新增的两个压缩类
- ASP.NET 2.0 中的新增服务、控件与功能概述
- C#2.0及C#3.0语言规范
- 快乐教鞭2.0新增功能介绍
- Asp.net 2.0 C#实现压缩/解压功能 (示例代码下载)
- ASP.NET 2.0 中的新增服务、控件与功能概述
- 晚上无聊象征性收取了网友100元辛苦费,实现支持多语言功能的XML语言包版的C#的ASP.NET多语言支持例子程序
- ASP.NET 2.0之WebPart 一 (C#语言)