以他举世闻名的“primer”风格、畅销书作者Stan Lippman现为您呈上一份不容错过的C#指南。《C# Primer》是一本内容详实、实例丰富的入门读物,全面介绍了这门新的面向对象编程语言。
\r\n C#是Microsoft新一代.NET平台的基石。它继承了Java(tm)和C++的诸多特性,C#是为创建高性能Windows与Web应用程序(及组件)——无论是基于XML的Web服务(Web Services),还是中间层业务对象、系统级应用等——而诞生的高级语言。
\r\n 本书特色:
\r\n ·涵括诸如命名空间(namespace)、异常处理、统一型别系统(unified type system)等等基础知识。
\r\n ·细致讲解class(类)继承与interface(接口)继承,并配以详尽的实例,还讨论了二者如何取舍。
\r\n ·大范围巡视[or涉猎].NET类库,包括ADO.NET入门、建立数据库连接、正则表达式、多线程、网笺套接口编程(sockets)、XML编程(利用firehose以及DOM解析模式),以及XSLT和XPATH等等。
\r\n ·详细讨论ASP.NET Web Form设计器,涉及页面生命周期(page life cycle)与缓存(caching)等内容,并提供大量样例。
\r\n ·介绍.NET共通语言运行层(Common Language Runtime—CLR)
\r\n 学习掌握C#不仅可以增强您的Web编程功力,还能提升您的生产效率。C# Primer为这一切提供了坚实的基础。
\r\n
译序by侯捷\r\n 译序by陈硕\r\n 目录\r\n 前言\r\n C#环境设置\r\n \r\n 第1章 Hello, C#\r\n 1.1 你的第一个C#程序\r\n 1.2 命名空间(Namespaces)\r\n 1.3 Main()的另一种形式\r\n 1.4 编写一个语句(Statement)\r\n 1.5 开启一个文本文件(Text File)以供读写\r\n 1.6 格式化输出\r\n 1.7 string型别\r\n 1.8 局部对象(Local Objects)\r\n 1.9 Value型别和Reference型别\r\n 1.10 C# array(数组)\r\n 1.11 new表达式\r\n 1.12 垃圾回收(Garbage Collection)\r\n 1.13 动态array: ArrayList collection class\r\n 1.14 统一型别系统(The Unified Type System)\r\n 1.15 缺口型(Jagged)array\r\n 1.16 Hashtable容器\r\n 1.17 异常处理(Exception Handling)\r\n 1.18 C#语言简要手册\r\n \r\n 第2章 Class的设计\r\n 2.1 我们的第一个独立Class\r\n 2.2 开启一个新的Visual Studio项目\r\n 2.3 声明数据成员(Data Members)\r\n 2.4 Properties(属性)\r\n 2.5 Indexers(索引器)\r\n 2.6 成员初始化(Member Initialization)\r\n 2.7 Class的构造函数(Constructor)\r\n 2.8 隐含的(implicit)this Reference\r\n 2.9 static(静态)成员\r\n 2.10 const和readonly数据成员\r\n 2.11 enum(枚举)value型别\r\n 2.12 delegate型别\r\n 2.13 函数参数语义学(Function Parameter Semantics)\r\n 2.14 函数重载(Function Overloading)\r\n 2.15 可变长度之参数列\r\n 2.16 操作符重载(Operator Overloading)\r\n 2.17 转换式操作符(Conversion Operators)\r\n 2.18 Class的析构函数(Destructor)\r\n 2.19 struct value型别\r\n \r\n 第3章 面向对象程序设计\r\n 3.1 面向对象编程概念\r\n 3.2 实现一个”多态查询语言”(Polymorphic Query Language)\r\n 3.3 设计一个Class继承体系\r\n 3.4 关于Objects\r\n 3.5 设计一个抽象基类(Abstract Base Class)\r\n 3.6 声明一个抽象基类(Abstract Base Class)\r\n 3.7 抽象基类(Abstract Base Class)的static成员\r\n 3.8 混合型抽象基类(Hybrid Abstract Base Class)\r\n 3.9 定义一个派生类(Derived Class)\r\n 3.10 覆写继承而来的虚接口(Virtual Interface)\r\n 3.11 覆写object的虚函数(Virtual Methods)\r\n 3.12 成员访问: new修饰符和base修饰符\r\n 3.13 将class密封起来\r\n 3.14 Exception继承体系\r\n \r\n 第4章 接口继承\r\n 4.1 实现System Interface: IComparable\r\n 4.2 访问业已存在的Interface\r\n 4.3 定义一个Interface\r\n 4.4 Interface成员的显示实现(Explicit Implementation)\r\n 4.5 继承得来的Interface成员\r\n 4.6 重载?掩盖?抑或模棱两可?Overloaded, Hidden, or Ambiguous?\r\n 4.7 掌握copy(拷贝)语义: ICloneable\r\n 4.8 掌握Finalize(终结)语义: IDisposable\r\n 4.9 BitVector: 以组合(Compositon)进行扩充\r\n \r\n 第5章 探访System命名空间\r\n 5.1 支持基本型别(Fundamental Types)\r\n 5.2 所有array都是System.Array\r\n 5.3 查询运行环境\r\n 5.4 System .IO\r\n 5.5 System杂项讨论\r\n 5.6 正则表达式(Regular Expressions)\r\n 5.7 System.Threading\r\n 5.8 Web的请求/响应模型(Request/Response Model)\r\n 5.9 System.Net.Sockets\r\n 5.10 System.Data\r\n 5.11 System.Xml\r\n \r\n 第6章 Windows Forms设计器\r\n 6.1 我们的第一个Windows Forms程序\r\n 6.2 建立GUI\r\n 6.3 实现”事件回调例程”(Event Callback Routines)\r\n 6.4 检阅并添加Control Events(控件相关事件)\r\n 6.5 实现Message Box(弹出式对话框)\r\n 6.6 以List Box输出无格式数据\r\n 6.7 探究File Dialog(文件对话框)\r\n 6.8 各式各样的Buttons(按钮)\r\n 6.9 端上Menus(菜单)\r\n 6.10 Data Grid控件\r\n 6.11 添加Picture Box控件\r\n \r\n 第7章 ASP.NET和Web Forms设计器\r\n 7.1 我们的第一个Web Forms程序\r\n 7.2 开启一个ASP.NET Web应用程序项目\r\n 7.3 在项目中加入页面\r\n 7.4 Hyper Link控件: 链接(Linking)其他页面\r\n 7.5 Data Grid控件\r\n 7.6 理解页面事件(Page Event)的生命周期\r\n 7.7 数据供应器(Data Provider)\r\n 7.8 管理Web状态\r\n 7.9 状态管理:Class Members\r\n 7.10 状态管理: Session Object\r\n 7.11 状态管理: Application Object\r\n 7.12 起验证作用的控件(Validation Controls)\r\n 7.13 添加Drop Down List控件\r\n 7.14 添加一组Radio Button\r\n 7.15 添加Check Box List控件\r\n 7.16 为控件添加验证器(Validators)\r\n 7.17 添加Calendar控件\r\n 7.18 添加Image控件\r\n 7.19 编写Web Server控件\r\n \r\n 第8章 通用语言运行屋\r\n 8.1 装配件(Assemblies)\r\n 8.2 Reflection(运行期型别反射)\r\n 8.3 通过Binding Flags修改拣取策略(Retrieval)\r\n 8.4 在运行期(runtime)调用某个成员函数\r\n 8.5 将测试委托(Delegating)给Reflection\r\n 8.6 Attributes(特征属性)\r\n 8.7 实现我们自己的Attribute class\r\n 8.8 利用Reflection在运行期获取Attributes\r\n 8.9 中间语言(Intermediate Language)\r\n \r\n 索引\r\n\r\n
C#是一门崭新的编程语言,它由Microsoft发明,并伴随着Visual Studio.NET开发工具而被引人人们视野。如今已有一百多万行C#代码被用于实现.NET class framework。本书涵盖C#语言本身以及它在.NET class framework编程领域中的应用,并阐述其应用领域,如ASP.NET和XML等等。
书中素材通常以如下方式呈现:给定一个任务,然后以一二种方法实现出来,同时并介绍语言特性或class framework相关种种。这么做的目的在于示范如何利用C#语言和class framework来解决问题,而不单单只是条列语言特性和class framework API。
C#的学习可分为两个步骤:(1)学习C#语言细节;(2)熟悉.NET class framework。这两个步骤体现于本书的组织结构上。
第一步,我们先学习语言,包括class(类)、interface(接口)继承、delegates(委托)等语言机制,以及像“统一型别系统” (unified type system)、value型别与reference型别、装箱(boxing)等底层概念。前四章涵盖这些内容。
第二步,熟悉.NET class framework,特别是Windows/Web程序设计,以及对XML的支持。这是本书后四章的焦点所在。
这本书读下来,你的C#编程技能应该会有一个飞跃的进步。此外,你还会熟悉.NET class framework的部分精彩内容。书中所有程序代码可自本人公司的主页下载(www.objectwrite.com).您也可以直接给我电子邮件:slippman@objectwrite.com
本书组织
本书由八个互有关联的长章节组成。前四章关注C#语言,着眼于语言内建特性、class机制、class继承、interface继承等等。余下四章带你探究.NET class framework所支持的诸多应用领域。
第1章 涵盖语言基础及.NET class framework提供的一些基础classes。本章的讨论以一个小程序的设计为主轴,介绍诸如命名空间(namespaces)、异常处理(exception handling)、统一型别系统(unified type system)等概念。
第2章 涵盖构建class所需的一些基本元素,包括访问许可(access permission)、常量(const)成员和只读(read only)成员之间的区别、特殊函数如索引器(indexers)和属性(properties)等等.我们还要学习“成员初始化”的不同策略、操作符重载(operator overloading)规则及转换操作符(conversion operators)。最后还要看看delegate(委托)型别,这种型别用起来像是“用以指向函数”之万用指针。
第3、4章 涵盖class的继承和interface的继承。前者使我们得以定义一整族“覆写(override)某一公共接口”的特化型别,例如抽象的Web Request基类和“与特定协议相关的”Http Web Request子类。后者可以为彼此不相关的classes提供公共服务或共享的特征属性(attribute)。例如IDisposable接口用于释放资源。持有数据库连接(database connections)的class和持有window handles的class往往都会实现IDisposable,尽管它们在其他方面并无关联。
第5章 带你对.NET class library做一次大范围巡礼,看看I/O(包括文件和目录的操作)、正则表达式(regular expressions)、sockets(网络套接口)、thread(线程)、Web Request和web Response等classes阶层体系,以及对ADO.NET和“建立数据库连接”的简短介绍、XML的使用等等。
第6、7章 介绍Windows Forms和Web Forms的拖放式(drag-and-drop)开发。第7章聚焦于ASP.NET和Web页面的生命周期(life cycle)。这两章有大量例子谈及如何使用预制控件(prebuilt controls),以及如何以事件处理器(event handlers)和用户互动(互操作)。
第8章 (最后一章)提供了一份“.NET共通语言运行层(Common Language Runtime,CLR)开发人员指南”。本章主要着眼于装配件(Assemblies)、型别反射(type reflection)和Attributes(特征属性)。本章末尾还摘要介绍了所有.NET语言的最终编译结果——中间语言(intermediate language为程序员而写。
本书并不假设你已经了解C#、Visual Basic或Java,但假设你曾经以某种语言写过程序。也就是说,我假设你不知道C#的循环语句foreach的确切语法,但我认为你知道什么是“循环”。尽管我会阐述如何在C#中调用一个函数,我还是假设你听得懂“调用一个函数”是什么意思。本书不要求你有面向对象编程知识,你也不需要了解早期版本的ASP和ADO。
有些人(特别是一些很聪明的人)认为,在.NET中,程序语言相对于(语言所附着的)底层CLR(Common Language Runtime,共通语言运行层)来说,处于次要位置,就像陆地漂浮于地质构造板块之上一样。我不同意这种说法。我们借助语言来表达自己,对语言的选择直接影响到我们的程序设计。本书实际上把C#设想为最佳的.NET编程语言。
本书由八个互有关联的长章节组成,前四章重点在于C#语言本身,着眼于内建的语言特性、class机制、class继承、interface继承。后四章带你探究.NET class framework支援的各个应用领域,如正则表达式(regular expressions)、threading(线程)、sockets、Windows Forms、ASP.NET、Common Language Runtime(CLR,共通语言运行层)等等。