(C# 3.0 新特性)
内容简介
本书前三章将集中介绍 C#语言。首先介绍基本的语法、类型和变量。而后会介绍一些高级的特性,如不安全代码以及预处理指令。如果你是 C#语言的初学者,请循序渐进地阅读这些章节。
其余各章则涵盖了.NET Framework 的核心功能,包括 LINQ、XML、集合、并发、I/O 和网络、内存管理、反射、动态编程、特性、安全、应用程序域和原生互操作性等主题。第 6 章和第 7 章是后续主题的基础,除这两章之外,其余各章可以按照需要以任何顺序阅读。LINQ 相关的三个章节好按顺序阅读。其中的一些章节需要一些并发相关的知识,这些知识将在第 14 章中介绍。
C# 3.0 增加的特性主要集中在语言集成查询(Language Integrated Query, LINQ)上。LINQ 令 C#程序可以直接编写查询并以静态方式检查其正确性。它可以查询本地集合(如列表或 XML 文档),也可以查询远程数据源(如数据库)。C# 3.0 中和 LINQ 相关的新特性还包括隐式类型局部变量、匿名类型、对象构造器、Lambda 表达式、扩展方法、查询表达式和表达式树。
隐式类型局部变量(var 关键字,见第 2 章)允许在声明语句中省略变量类型,然后由编译器推断其类型。这样可以简化代码并支持匿名类型(见第 4 章)。匿名类型是一些即时创建的类,它们常用于生成 LINQ 查询的最终输出结果。数组也可以隐式类型化(见第 2 章)。
对象初始化器(见第 3 章)允许在调用构造器之后以内联的方式设置属性,从而简化对象的构造过程。对象初始化器不仅支持命名类型也支持匿名类型。
Lambda 表达式(见第 4 章)是由编译器即时创建的微型函数,适用于创建“流畅的”LINQ 查询(见第 8 章)。
扩展方法(见第 4 章)可以在不修改类型定义的情况下使用新的方法扩展现有类型,使静态方法变得像实例方法一样。LINQ 表达式的查询运算符就是使用扩展方法实现的。
查询表达式(见第 8 章)提供了编写 LINQ 查询的更高级语法,大大简化了具有多个序列或范围变量的 LINQ 查询的编写过程。
表达式树(见第 8 章)是赋值给一种特殊类型 Expression
C# 3.0 还添加了自动化属性和分部方法。
自动化属性(见第 3 章)对在 get/set 中对私有字段直接读写的属性进行了简化,并将字段的读写逻辑交给编译器自动生成。分部方法(Partial Method,见第 3 章)可以令自动生成的分部类(Partial Class)自定义需要手动实现的钩子函数,而该函数可以在没有使用的情况下“消失”。
评论