本书是一本广受赞誉的C# 教程。它以图文并茂的形式,用朴实简洁的文字,并辅之以大量表格和代码示例,精炼而全面地阐述了最新版C# 语言的各种特性,使读者能够快速理解、学习和使用C#。同时, 本书还讲解了C#与VB 、C++ 等主流语言的不同点和相似之处。
本书是一本经典的C# 入门书,不仅适合没有任何编程语言基础的初级读者,而且还是有VB 、C++ 等语言基础的C# 初学者的最佳选择。
第1章 C#和.NET框架
1.1 在.NET之前
1.1.1 世纪90年代后期的Windows编程
1.1.2 下一代平台的目标
1.2 进入Microsoft .NET
1.2.1 .NET框架的组成
1.2.2 大大改进的编程环境
1.3 编译成CIL
1.4 编译成本机代码并执行
1.5 CLR
1.6 CLI
1.7 缩写回顾
第2章 C#编程概述
2.1 一个简单的C#程序
2.2 标识符和关键字
2.2.1 命名约定
2.2.2 关键字
2.3 Main:程序的起始点
2.4 空白
2.5 语句
. 2.5.1 简单语句
2.5.2 块
2.6 从程序中输出文本
2.6.1 Write
2.6.2 WriteLine
2.6.3 格式字符串
2.6.4 多重标记和值
2.7 注释
2.7.1 关于注释的补充
2.7.2 文档注释
2.7.3 注释类型总结
第3章 类型、存储和变量
3.1 C#程序是一组类型声明
3.2 类型是一种模板
3.3 实例化类型
3.4 数据成员和函数成员
3.5 预定义类型
3.6 用户定义类型
3.7 栈和堆
3.7.1 栈
3.7.2 堆
3.8 值类型和引用类型
3.8.1 存储引用类型对象的成员
3.8.2 C#类型的分类
3.9 变量
3.9.1 变量声明
3.9.2 多重变量声明
3.9.3 使用变量的值
第4章 类:基础
4.1 类的概述
4.2 程序和类:一个快速的示例
4.3 声明类
4.4 类成员
4.4.1 字段
4.4.2 显式和隐式字段初始化
4.4.3 声明多个字段
4.4.4 方法
4.5 创建变量和类的实例
4.6 为数据分配内存
4.7 实例成员
4.8 访问修饰符
4.9 从类的内部访问成员
4.10 从类的外部访问成员
4.11 综合应用
第5章 方法
5.1 方法的结构
5.2 本地变量
5.2.1 类型推断和var关键字
5.2.2 嵌套块中的本地变量
5.3 本地常量
5.4 方法调用
5.5 返回值
5.6 参数
5.6.1 形参
5.6.2 实参
5.6.3 带输入参数的方法示例
5.7 值参数
5.8 引用参数
5.9 输出参数
5.10 参数数组
5.10.1 方法调用
5.10.2 数组作实参
5.11 参数类型总结
5.12 栈帧
5.13 递归
5.14 方法重载
第6章 类进阶
6.1 类成员
6.2 实例类成员
6.3 静态字段
6.4 从类的外部访问静态成员
6.4.1 静态字段示例
6.4.2 静态成员的生存期
6.5 静态函数成员
6.6 其他静态类成员类型
6.7 成员常量
6.8 属性
6.8.1 属性声明和访问器
6.8.2 属性示例
6.8.3 使用属性
6.8.4 属性和关联字段
6.8.5 执行其他计算
6.8.6 只读和只写属性
6.8.7 计算只读属性示例
6.8.8 属性和数据库示例
6.8.9 自动实现属性
6.8.10 静态属性
6.9 实例构造函数
6.9.1 带参数的构造函数
6.9.2 默认构造函数
6.10 静态构造函数
6.10.1 静态构造函数示例
6.10.2 构造函数的可访问性
6.11 对象初始化列表
6.12 析构函数
6.12.1 调用析构函数
6.12.2 标准清理模式
6.13 比较构造函数和析构函数
6.14 readonly修饰符
6.15 this关键字
6.16 索引
6.16.1 什么是索引
6.16.2 索引和属性
6.16.3 声明索引
6.16.4 set访问器
6.16.5 get访问器
6.16.6 关于索引的补充
6.16.7 为Employee示例声明索引
6.16.8 另一个索引示例
6.16.9 索引重载
6.17 访问器的访问修饰符
6.18 分部类和分部类型
第7章 类和继承
7.1 类继承
7.2 访问继承的成员
7.3 隐藏基类的成员
7.4 基类访问
7.5 使用基类的引用
……
第8章 表达式和运算符
第9章 语句
第10章 命名空间和程序集
第11章 异常
第12章 结构
第13章 枚举
第14章 数组
第15章 委托
第16章 事件
第17章 接口
第18章 转换
第19章 泛型
第20章 枚举数和迭代器
第21章 介绍LINQ
第22章 异步编程简介
第23章 预处理指令
第24章 反射和特性
第25章 其他主题
书是知识的载体,是智慧的传播者。技术图书在技术的普及、发展过程中的作用是毋庸置疑的。在这个知识爆炸、信息技术迅猛发展的时代,技术图书的作用更加突出。我们比以往任何时候都需要关于新技术和新平台的参考资料。一本描述清晰、内容详细的书能使我们快速掌握这些技术。.
译者不才,自己无力写出这样的书,愿意以虫蚁之能,行搬运之事,将优秀外文书籍译成中文,以利于国人参考和学习,从而为技术传播尽自己的绵薄之力。
C#和.NET平台近年来迅速普及,已经成为很多公司使用的主要技术之一。有很多出色的应用都是使用C#开发的,包括很多Web 2.0时代的网络应用。虽然.NET平台目前还只能在Windows操作系统下工作,但是这并没有妨碍它发展壮大。一方面是因为Windows操作系统的普及程度已经给.NET提供了巨大的发展空间;另一方面是因为.NET确实是个优秀的平台,而且C#也确实算得上是新一代的优秀的面向对象编程语言。作为一个与时俱进的软件工程师,忽视C#和.NET是很不明智的。..
本书是一部极为出色的C#著作。正如本书作者所说,它不仅包含了入门的基础知识,而且同时还能作为开发过程中的参考书使用。书中使用了大量的示例和图表,使内容一目了然。即便是有经验的C#程序员,阅读这本书也会受益匪浅。
在本书的翻译过程中,我尽量保持原书清晰明了的风格,并努力保证术语及用词的准确。由于能力有限,我虽已尽所能,但仍难免有不妥之处,望读者朋友海涵。
感谢我的妻子毛毛!在我翻译本书的过程中,她承担了大部分的家务,并给予了我很多支持和鼓励。没有她的爱和付出,本书的翻译工作肯定不会进展得如此顺利。
相信这本书一定对你有用!
苏林
2008年5月于上海...
本书的目的是讲授C#编程语言的基础知识和工作原理。大多数图书主要使用文字讲授编程。文字对于小说来说足够了,但对于编程语言中的很多重要概念,综合运用文字、图形和表格会更容易理解。.
我们中许多人都习惯于形象思维,而图形和表格有助于我们更清晰地理解概念。在几年的编程语言教学过程中,我发现是我在白板上画的图帮助学生最快地理解了我要传达的概念。
然而,单是图表并不足以解释一种编程语言和平台。本书的目标是找到文字和图表的最佳结合,以使你对这种语言有透彻的理解,并且也让本书能当作参考工具使用。..
本书写给所有想要学习C#的人——从初学者到有经验的程序员。刚开始学编程的人会发现,书中全面讲述了基础知识;有经验的程序员会觉得,内容的叙述非常简洁,无需苦苦寻觅就能直接获得想要的信息。对于这两类程序员,内容本身都用图形化方式呈现,这种方式使这种语言更容易学习。
请享受本书吧!
致谢
我想感谢Sian每天支持并鼓励我,我还想感谢我的父母、兄弟和姐妹,他们——直爱我并支持我。
我还想对Apress的朋友表达诚挚的感谢,他们与我一起工作并完成这本书。我真心感激他们理解并赏识我努力做的事情,并和我一起完成它。感谢你们所有人。...
第1章 C#和.NET框架
本章内容
口在.NET之前
口进入Microsoft.NET
口编译成CIL
口编译成本机代码并执行
口CLR
口CLI
口缩写回顾
1.1 在.NET之前
C#编程语言是为开发微软公司的.NET框架上的程序而设计的。本章将简要介绍.NET从何而来,以及它的基本架构。这只是为了确保你从正确的一步开始,让我借此机会提醒你一件可能显面易见的事情:C#的发音为see sharp。
1.1.1 20世纪90年代后期的Windows编程
在20世纪90年代后期,使用微软平台的Windows编程分化成许多分支。大多数程序员在使用Visual Basic(VB)、C或C++。一些C和C++程序员在使用纯Win32 APl,但大多数人在使用MFC(Microsoft Found撕on Classes,微软基础类库)。其他人已经转向了COM(Component Object Mdodel,组件对象模型)。
所有这些技术都有自己的问题。纯Win32 APl不是面向对象的,而且使用它的工作量比使用VIFC的更大。MFC是面向对象的,但是它却不一致,并逐渐变得陈旧。COM虽然概念上简单,但它的实际代码复杂,并且需要很多丑陋的、不雅的底层基础代码。
所有这些编程技术的另外一个缺点是它们主要针对桌面程序而不是Intemet的开发。那时,Web编程还是以后的事情,而且看起来和桌面编程非常不同。
1.1.2 下一代平台的目标
我们真正需要的是一个新的开始——一个集成的、面向对象的开发框架,它可以把一致和优雅带回编程。为满足这个需求,微软宣布开发一个代码执行环境和一个可以实现这些目标的代码开发环境。
……