本书以面向对象编程技术和.NET框架类库为主轴,透彻地介绍了C#的语法、编程思想和高级.NET框架编程技术。全书分为三部分,共22章,全面详细地解说了C#的技术要点,包括C#语言基础、C#的面向对象特征、异常处理、委托与事件、集合、泛型、字符串与正则表达式、特性、反射、程序集与版本控制、.NET框架的内存管理、多线程、Windows窗体、GDI+、与非托管代码互操作等,对每一个知识点都提供了典型实例。本书基于C#和.NET框架的最新版本而编写,介绍了C#的最新特色,包括泛型、匿名方法、迭代器、静态类、分部类型和可空类型等。本书既阐述了C#的基础知识,又介绍了C#的高级应用技术,包括多线程、异步调用、图形图像处理、游戏编程、与COM等非托管代码的互操作,以及插件编程等。\r\n 本书适合所有希望了解和掌握C#和.NET的开发人员阅读,是大专院校计算机相关专业和各类培训班的理想教学参考书。
第1部分 C#语言基础\r\n 第1章 C#概述 \r\n 第2章 开始C#编程 \r\n 第3章 变量与常量 \r\n 第4章 表达式与运算符 \r\n 第5章 程序流程控制 \r\n第2部分 C#面向对象编程\r\n 第6章 面向对象编程技术 \r\n 第7章 类:抽象与封装 \r\n 第8章 方法 \r\n 第9章 继承与多态 \r\n 第10章 异常处理 \r\n 第11章 重载运算符 \r\n 第12章 结构与枚举 \r\n 第13章 集合 \r\n 第14章 字符串与正则表达式 \r\n 第15章 委托与事件 \r\n 第16章 泛型 \r\n第3部分 使用.NET框架类库\r\n 第17章 文件操作 \r\n 第18章 特性、反射与程序集\r\n 第19章 多线程 \r\n 第20章 Windows窗体编程 \r\n 第21章 GDI+图形图像编程 \r\n 第22章 与非托管代码的互操作编程 \r\n附录A C#关键字 \r\n附录B C#编程风格
周长发,北京大学理学博士。现在美国硅谷一家软件公司工作。他的主要研究领域为图像处理、多媒体技术、软件设计与架构以及计算机安全。他撰写了《精通Visual C++图像处理编程》和《科学与工程数值计算算法集(Visual c++版)》等8本书籍,还翻译了《计算杌图形学几何工具算法详解》和《黑客调试技术揭秘》两本专著。
C#是一种简洁、类型安全的面向对象编程语言,可以用于构建在 .NET框架上运行的各种安全、可靠的应用程序,包括传统的Windows客户端应用程序、XML Web服务、分布式组件、客户-服务器应用程序,以及数据库应用程序等类型的程序。C#与Java非常类似,也是从C/C++发展而来的一种面向对象的语言。对于熟悉C/C++或者Java语言的程序员来说,只需要花费很少的时间就能掌握C#。
C#剔除了C++中繁杂和易于出错的一些规则,其语法非常简洁易用。在简化语法和提供类型安全的同时,C#还提供了一些比C/C++和Java更强大的功能,包括特性(attribute)、属性(property)、可空类型(nullable type)、枚举(enum)、委托(delegation)、匿名方法和直接内存访问等。C#是一种完全、纯粹的面向对象语言,支持封装、继承和多态性;C#程序的所有变量和方法,包括 Main 方法(应用程序的入口点),都封装在类定义中;C#的类只能从一个直接基类继承,但是类可以实现任意数量的接口;重写父类的虚方法时,必须使用override关键字,可以有效地避免意外的错误;C#支持泛型,提供了优秀的类型安全和性能;C#还提供了迭代器,允许集合类的实现者定义自定义的迭代行为,简化了客户端代码对它的使用。
.NET已经成为Microsoft的支撑战略,Microsoft的所有产品现在都围绕.NET而展开。C#是.NET的核心——.NET框架——的“母语”,因此使用C#能够最有效地开发基于.NET的应用程序。实际上,Microsoft早已开始使用C#来开发其绝大部分新产品。
本书基于C# 2.0规范而著,融会了笔者十多年的专业编程经验。本书的目标是让读者理解C#的编程思想,帮助读者掌握C#这门优雅的语言,早日成为.NET编程高手。
本书的适用对象
本书面向所有希望了解和掌握C#和.NET的开发人员。本书从最基本的C#语法开始,说明了C#语言的技术特征,以面向对象编程思想和.NET类库为主轴,结合大量的典型实例,全面透彻地介绍了C# 2.0的编程方法和进行.NET框架编程的高级技术。因此,本书适合于各个层次读者的需求,无论你是刚开始接触C#,还是已有一定的C#工作经验,都能从书中找到自己所需要的内容。
本书虽然并未预设任何前提,但是,笔者假定读者都具备计算机软件和编程的基础知识(比如,知道什么是内存、什么是程序等)。这类知识将有助于读者理解本书的内容。
本书的主要内容
为使读者理解C#的面向对象编程思想,本书的内容是围绕“如何使用面向对象的C#来进行思考”这一主旨而展开的。全书分为三个部分,共22章。在介绍了C#的语法细节的基础上,本书阐述了C#的面向对象思想,讨论了.NET框架系统编程的高级技术。
第1部分,C#语言基础,介绍了C#的基本语言特征。这一部分主要帮助读者熟悉C#的基本编程元素。如果读者熟悉C/C++或Java,将会发现这一部分介绍的绝大部分内容都似曾相识,可以快速地浏览这一部分内容。如果读者不太熟悉C/C++或Java,或者没有太多的编程经验,那么仔细阅读这一部分将有助于熟悉计算机编程语言的基本概念和C#的基本概貌。
第1章,C#概述,介绍了C#的历史、特征和功能,以及与.NET的关系,阐述了C#编程的两个要点,即其编程方法学为面向对象编程,其编程库为.NET框架类库。本章还介绍了进行C#开发所需的基本工具。本章将帮助读者建立关于C#编程的全景图,笔者建议所有的读者都仔细地阅读本章。
第2章,开始C#编程,介绍了C#程序的基本结构和编译方法;简要说明了如何使用Visual Studio 2005进行软件开发和调试。
第3章,变量与常量,介绍了计算机编程语言的基本概念——变量、常量、类型、类型转换,以及这些概念在C#中的表现形式。本章还详细阐述了C#特有的装箱/拆箱操作和可空类型的概念。
第4章,表达式与运算符,介绍了计算机编程语言的基本概念——表达式和运算符,以及C#支持的运算符和它们的优先级。
第5章,程序流程控制,说明了计算机编程语言的基本概念——语句、语句块和流程控制语句,以及C#支持的选择、循环和跳转语句的功能和语法。
第2部分,C#面向对象编程,介绍了C#的面向对象编程技术。在说明了面向对象编程技术的概念和方法的基础上,这一部分详细阐述了C#的面向对象思想。这一部分内容是本书的核心,值得仔细体会。
第6章,面向对象编程技术,首先介绍了面向对象编程中经常使用的UML,然后重点阐述了基于对象建模技术的面向对象分析和面向对象设计的概念和方法。
第7章,类:抽象与封装,详细说明了如何通过概念抽象和数据封装来设计类,如何在C#中声明类和类的成员。本章还介绍了C#特有的几个概念,包括属性、索引器、命名空间和分部类。本章是理解C#面向对象编程的基础,在进入下一章的学习之前,请确保你已经完全理解本章的所有概念。
第8章,方法,介绍了C#方法的声明方式、签名和重载,作为程序入口点的Main方法,以及递归方法。本章还提供了一个综合示例,说明了如何基于面向对象的分析和设计来进行面向对象编程。
第9章,继承与多态,论述了C#如何实现面向对象编程中的这两个核心原则,介绍了抽象类、静态类、接口和组件编程的概念和方法,并说明了类的转换方式。本章是理解C#面向对象编程思想的核心,笔者期望读者能够理解本章的每一个概念。
第10章,异常处理,介绍了C#错误处理的基本方法——异常处理。
第11章,重载运算符,说明了C#重载运算符的原则和语法。
第12章,结构与枚举,介绍了如何在C#中定义和使用结构与枚举。结构与枚举是两种值类型。
第13章,集合,讨论了在C#中实现和使用集合的方法与技巧。与其他语言相比,C#的数组是一种集合,功能更强大,更易于使用。本章介绍了.NET框架类库提供的几种常用的集合类。使用迭代器能够非常简单地实现自定义集合类。
第14章,字符串与正则表达式,介绍了C#进行字符串处理的基本方法,以及如何使用正则表达式获取强大的字符串处理能力。
第15章,委托与事件,介绍了C#独创的委托概念,以及C#基于委托来实现其事件模型的方法。委托是一种用来存储方法引用的引用类型。事件是一种进行类间通信的函数成员,委托是定义事件的基础。委托与事件是深入理解C#编程思想的重要概念。
第16章,泛型,说明了C#如何通过泛型来提供安全和高效的类型支持,介绍了使用泛型集合的编程方法。
第3部分,使用.NET框架类库,说明了如何通过C#来使用.NET框架类库编程。.NET框架类库是C#语言的编程库,C#程序要实现任何有意义的功能,都必须通过调用.NET框架类库中定义的类来实现。另一方面,C#是进行.NET框架编程的最佳语言,使用C#可以实现.NET框架中的任何功能。本章讨论了.NET框架系统编程的许多高级技术。对于具备一定的C#编程经验的读者来说,这一部分可能是他们最感兴趣的内容。
第17章,文件操作,介绍了C#语言在.NET系统中进行文件操作的方法,包括针对文本文件、二进制文件和XML文件的各种编程技术。
第18章,特性、反射与程序集,说明了C#如何使用特性和自定义特性,如何编写程序集和进行程序集版本控制,如何使用反射,以及.NET框架的自动内存管理方式。本章讨论的动态代码生成和插件编程技术可能是程度较高的读者所企盼的内容。
第19章,多线程,介绍了.NET框架的多线程管理和同步编程技术。本章还讨论了异步调用,这是一种非常有用的编程技术。
第20章,Windows窗体编程,说明了如何编写Windows窗体应用程序,介绍了几种典型的常用控件。这是任何一个C#程序员都会感兴趣的内容。本章还讨论了用户界面与多线程的关系,理解这一点是编写高质量商业应用程序的基础。
第21章,GDI+图形图像编程,介绍了使用GDI+来绘制和打印图形、图像和文本的方法,讨论了基于GDI+的图像处理的技术,说明了如何编写和使用自定义控件。本章的综合示例实现了Hanoi塔游戏,其中介绍了许多用C#来编写游戏的技巧。
第22章,与非托管代码的互操作编程,说明了如何在托管代码中调用DLL中的非托管函数,如何在托管代码中使用COM组件和ActiveX控件,如何编写能够用于非托管代码的.NET程序集,如何在非托管代码中调用.NET程序集,以及如何在C#中使用不安全的类型(指针)。本章提供了一个使用C#进行底层图像处理操作的例子,介绍了提高C#程序的运行速度的方法。
本书还包括两个附录,列出了C#关键字,介绍了C#编程风格。附录B中的C#编程风格提供了一种实用的简明编程风格,有助于编写高质量的C#代码。
C#是一种非常强大的编程语言,除了本书介绍的内容外,C#还被广泛地应用于多媒体、安全与加密、数据库(ADO.NET)、Web(ASP.NET)、Web服务、网络访问与.NET Remoting等方面的编程。限于篇幅,不可能在本书中包含这些内容,但是它们可能是笔者下一本书的主要内容。
如何使用本书
本书提供了大量的实用代码和例程。在阅读本书时,读者最好能准备好一台计算机,以便随时能边读边练,结合本书提供的实例来学习。
为了能够正确地使用本书提供的示例程序,读者的计算机系统应满足如下基本要求。
CPU:奔腾III或更高
内存:不少于128MB
操作系统:Windows XP(Service Pack 2)
编程环境:Visual Studio 2005/.NET框架
无封面