图书前言

作本书期间,幸值David Gries先生来华访问。交流中谈及大学计算机专业的第一门程序设计课程,Gries非常强调抽象编程思维和良好编程风格的培养,并提倡“对象先行”(object first)的教学方式,以及“深入语言编程”(programming into a language)的实践方法。

这也引发了笔者的进一步思考。近年来软件开发方式发生了深刻的变革;软件已不再是个人精雕细琢的艺术品,而是一系列标准化软件过程活动的产品。在引导读者走入编程世界的过程中,应当选取一门简单易学、类型安全且完全面向对象的程序设计语言,同时又要避免课程沦为开发工具和语言的职业培训。而无论读者日后成长为计算机理论研究的学者,还是专业软件开发人员,科学的编程思想始终是他们脑中的“武功秘诀”,流行的语言工具则随时能够成为他们手中的利器。

C#语言脱胎于C/C++,同时汲取了Java、Delphi等语言的精华,是.NET平台上的核心开发语言。C# 2.0更是将泛型编程思想与面向对象技术进行了完美的融合,使其成为符合现代软件工程要求的主流程序设计语言。为适应.NET技术发展的趋势,特别是满足大中专院校开设C#程序设计课程的要求,我们组织编写了此书。本书循序渐进、深入细致地讲解了C#语言的编程技术,并重点介绍了C# 2.0的新增特性。全书内容共包括4个部分17章。

* C#语言基础:第1章介绍了.NET技术和C#语言的概貌,第2~5章则依次讲解了C#的类型系统、常量和变量、表达式,以及控制结构。

* 面向对象的程序设计:第6章和第7章详细介绍了C#面向对象的基本要素,包括类的封装、继承和多态性,第8章则通过若干常用类型来加深对相关概念的理解。

* 泛型程序设计:第9章是泛型的基础概念,第10章的可空类型就是泛型结构的一个典型实例,第11章继续深入讲解了泛型接口、方法和委托,第12章和第13章则分别介绍了有关泛型的两个高级应用——遍历器和匿名方法。

* 商业应用开发:第14~17章介绍了C#商业应用开发的必备知识,包括异常处理、文件操作、多线程处理,以及代码组织。

每一章在结束时都对主要知识点进行了回顾和总结,并通过一定数量的习题来帮助读者温习所学内容。对于面向对象技术的初学者来说,最困难的部分应是类的继承和多态性;对于有一定基础的开发者来说,C#语言中最不易掌握的可能是委托(delegate)

这个概念。而C# 2.0新增的两个主要特性——泛型和匿名方法,又恰恰增加了这两方面内容的深度。因此第7、9、13章是本书的难点所在。

全书提供了大量鲜明生动的案例程序,全部源代码及配套课件、测试题等相关资源均可在清华大学出版社网站www.tup.com.cn下载。本书另外配有上机实验指导书,可供教学使用。

针对高校计算机科学与技术专业、计算机应用专业与非计算机专业程序设计课程的不同需求,下表分别给出了建议的课程学时安排(括号中表示上机学时,×表示选修或自学内容)。