第1章 .NET和C#简介 1
1.1 .NET和C# 1
1.2 .NET SDK的安装 3
1.3 Visual Studio 7.0的安装 3
1.3.1 Visual Studio 7.0系统要求 3
1.3.2 Visual Studio 7.0安装步骤 4
1.3.3 Visual Studio 7.0安装中常见问题 6
第2章 C#语言入门 7
2.1 “Hello,world”程序 7
2.2 类型 8
2.3 变量和参数 10
2.4 内置变量 11
2.5 数组类型 12
2.6 系统统一类型 14
2.7 自动内存管理 15
2.8 表达式 17
2.9 局部常量和局部变量 17
2.10 语句 18
2.10.1 if语句 18
2.10.2 switch语句 19
2.10.3 while语句 19
2.10.4 do语句 20
2.10.5 for语句 20
2.10.12 lock语句 21
2.10.11 checked和unchecked语句 21
2.10.9 throw语句 21
2.10.10 try语句 21
2.10.8 return语句 21
2.10.7 break语句和continue语句 21
2.10.6 foreach语句 21
2.10.13 语句标记和goto语句 22
2.11 类 22
2.12 结构 22
2.13 接口 23
2.14 代表(delegate) 25
2.15 枚举 27
2.16 名字空间 28
2.17 属性 29
2.18 特性 30
3.1.1 预处理声明 38
3.1 预处理指令 38
第3章 编译预处理和C#程序调试 38
3.1.2 #if、#elif、#else、#endif 40
3.1.3 预处理控制行 40
3.1.4 #line 41
3.1.5 预定义表达式 41
3.1.6 要注意的问题 41
3.1.7 一个条件编译的例子 42
3.2 保留字 44
3.3 编译和调试C#程序 45
3.3.1 命令行编译 45
3.3.2 用.NET SDK进行调试 45
3.3.3 使用Visual Studio 7.0提供的集成开发环境 54
3.3.4 利用Visual Studio 7.0来调试程序 59
4.1.1 值类型的默认构造函数 62
4.1 值类型 62
第4章 C#数据类型 62
4.1.2 结构类型 63
4.1.3 简单类型 64
4.1.4 枚举类型 67
4.2 引用类型 68
4.2.1 类类型 68
4.2.2 对象类型 68
4.2.3 字符串类型 68
4.2.4 接口类型 68
4.2.5 数组类型 69
4.2.6 代表类型 69
4.3 加框和消框(boxing和unboxing) 69
4.3.1 boxing加框转化 69
4.3.2 unboxing消框转化 70
第5章 表达式与控制语句 71
5.1 表达式 71
5.1.1 表达式分类 71
5.1.2 简单表达式 71
5.2 函数 72
5.2.1 函数分类 72
5.2.2 参数列表 73
5.3 操作符 74
5.3.1 操作符的优先级 74
5.3.2 基本操作符 74
5.3.3 单目操作符 79
5.3.4 算术操作符 80
5.3.5 移位操作符 80
5.3.9 操作符的重载 81
5.3.8 条件逻辑操作符 81
5.3.6 关系操作符 81
5.3.7 位逻辑操作符 81
5.3.10 条件语句 85
5.3.11 赋值语句 85
5.4 语句 87
5.4.1 语句块 87
5.4.2 空语句 87
5.4.3 标签语句 87
5.4.4 声明语句 88
5.4.5 表达式语句 88
5.4.6 选择语句 88
5.4.7 循环语句 90
5.4.8 跳转语句 91
6.1 名字空间的声明和调用 92
第6章 名字空间 92
6.1.1 名字空间的声明 94
6.1.2 名字空间的使用 95
6.1.3 using指令 96
6.1.4 名字空间的别名 97
6.2 名字空间和基类 98
第7章 类 99
7.1 描述类的概念 99
7.1.1 抽象类(Abstract class) 99
7.1.2 密封类(Sealed class) 100
7.1.3 基类(Base classes) 100
7.2.1 类成员声明 101
7.2 类成员 101
7.2.2 继承 102
7.2.3 new修饰符 102
7.2.4 权限修饰符 102
7.2.5 静态和实例成员 102
7.3 常量 104
7.4 字段 105
7.4.1 静态和实例字段(static and instance fields) 105
7.4.2 只读字段(readonly fields) 107
7.4.3 常量和静态只读字段的区别 108
7.5 方法 109
7.5.1 方法参数(method parameters) 109
7.5.2 虚拟方法(virtual methods) 114
7.5.3 重载基类中的方法(override methods) 118
7.5.4 抽象方法(abstract methods) 119
7.5.5 外部方法(external methods) 120
7.6 属性(Properties) 121
7.6.1 存取标记(accessors) 121
7.6.2 虚拟、隐藏和抽象标记(virtual、override、abstract accessors) 124
7.7 事件(Events) 126
7.8 索引(Indexers) 131
7.9 操作符(Operators) 138
7.10 实例构造函数(Instance Constructors) 138
7.10.1 默认构造函数(default constructors) 138
7.10.2 私有构造函数(private constructors) 139
7.11 静态构造函数(Static Constructors) 139
7.13 一个堆栈类的实现 142
7.12 析构函数(Destructors) 142
7.14 .NET的基类 144
7.14.1 基类查看工具WinCV 145
7.14.2 处理日期和时间 146
7.14.3 文件和文件夹的操作 148
第8章 结构 159
8.1 结构的声明和使用 159
8.1.1 结构成员的属性、方法和私有字段 159
8.1.2 结构作为参数传递 160
8.1.3 结构的构造函数和继承 161
8.1.4 结构和特性(Attribute) 162
8.2 结构的两个例子 163
8.2.1 数据库整数类型(Database integer type) 163
8.2.2 数据库布尔类型(Database boolean type) 165
第9章 数组和枚举 168
9.1 数组 168
9.1.1 数组类型(Array types) 168
9.1.2 数组创建 168
9.1.3 数组元素访问(Array element access) 169
9.1.5 数组初始化(Array initializers) 169
9.1.6 数组举例 170
9.2 枚举 171
9.2.1 枚举的声明 171
9.2.2 枚举成员 172
第10章 接口 174
10.1 接口概述 174
10.2.1 接口修饰符 177
10.2.2 基本接口 177
10.2 接口声明 177
10.3 接口成员 178
10.3.1 接口成员声明 178
10.3.2 接口方法 178
10.3.3 接口属性 178
10.3.4 接口索引 179
10.3.5 接口成员访问 179
10.4 接口实现 181
10.4.1 接口的实现 181
10.4.2 接口成员的显式实现 183
10.4.3 接口重实现 188
10.4.4 抽象类和接口 189
11.1 通过代表调用方法 190
第11章 代表 190
11.2 定义代表为静态成员 198
11.3 动态创建代表 200
11.4 代表合成 201
11.5 代表和事件 203
第12章 异常处理 207
12.1 如何捕获异常 207
12.1.1 检查(checked)和非检查(unchecked)语句 207
12.1.2 通过编译器设置溢出检查 208
12.1.3 在语句中设置溢出检查 208
12.2 异常处理语句 210
12.2.1 使用try和catch捕获异常 210
12.2.2 使用try和finally清除异常 211
12.2.3 使用try-catch-finally处理所有异常 214
13.1.1 创建一个非管理COM类包容器 216
第13章 C#高级应用 216
13.1 与COM对象的交互 216
13.1.2 在C#代码中声明一个非管理的COM类(coclasses) 217
13.1.3 在C#代码中创建一个非管理COM类的实例 217
13.1.4 C#中的QueryInterface 218
13.1.5 综合实例 218
13.2 创建受管理DLL和调用外部DLL 223
13.2.1 编译和调用一个动态链接库 223
13.2.2 调用外部DLL库 226
13.3 代码安全 227
13.3.1 安全性 227
13.3.2 安全策略 227
13.3.3 安全和性能 230
13.4 ADO对象 232
13.4.1 数据集的产生 233
13.4.2 浏览、添加和修改数据 235
13.5 其他应用(系统服务进程) 247
第14章 Visual C#设计Windows程序 249
14.1 常用控件 249
14.1.1 使用菜单 249
14.1.2 使用工具栏 250
14.1.3 设计MDI文档 257
14.1.4 保存文件对话框和打开文件对话框 258
14.1.5 打印预览对话框 259
14.2 综合实例 259
14.2.1 MDI主窗口源程序Scribble.cs 260
14.2.2 MDI子窗口源程序ScribbleView.cs 283
14.2.3 类定义源程序ScribbleView.cs 288