csharp 2.0 说明书 (译自csharp 2.0 specification_sept_2005)
Notice
© 2005 Microsoft Corporation. All rights reserved.
Microsoft, Windows, Visual Basic, Visual C#, and Visual C++ are either registered trademarks or trademarks of Microsoft Corporation in the
Other product and company names mentioned herein may be the trademarks of their respective owners.
C#2.0 进行了几项语言的扩展,包括 泛型、匿名方法、迭代算法、Partial Types以及Nullable 类型。
· 泛型允许类、结构、接口、代理和方法被它们所存储和操作的数据参数化。泛型的作用在于提供强编译时类型检查。这种编译时的类型检查只需要很少的清晰地数据类型转换就能实现boxing 操作和运行时类型检查。
· 匿名方法允许以“内联”的形式把代码块写在代理值的地方。匿名方法类似于Lisp编程语言中的lambda 函数。C# 2.0 在匿名方法访问本地变量和参数的时候实现了闭锁( creation of “closures” )。
· 迭代算法是一类方法:实现自增计算和产生值的序列。迭代算法使指定一个类型如何在 foreach 语句中迭代枚举自己的元素变得容易了。
· Partial types 允许类、结构和接口分成多个部分存储在不同的源文件中,以便于更加方便开发和维护。另外,, partial types 允许把机器生成的部分和用户写成的部分分开,这样更容易使用工具参数化生成代码。
· Nullable 类型代表一种可能是未知的值。一个nullable 类型提供它的underlying 类型和一个空状态。任何值都可以是 nullable 类型的underlying 类型。一个nullable 类型除了支持它的underlying 类型的转换和操作以外,还提供了额外的与SQL 类似的针对空值的操作。
本章给这些新特性作了介绍。在后面的5 个章节中提供了对他们做了完整的技术说明。 最后一章描述了C# 2.0中的一些其他的次要扩展。
C# 2.0语言的扩展在设计时保证了对现有代码的最大适用性。例如,尽管在C# 2.0中yield, 和partial 在特定的上下文中被赋予了特殊的意义,但是你仍然可以把它们作为标识符使用。实际上, C# 2.0 没有添加任何可能与现存代码有冲突的关键字。
关于C# 语言的最新信息和对于本文档的建议,请访问C# Language Home Page (http://msdn.microsoft.com/vcsharp/language)。