第1章 C#和.NET 1
1.1 C#概述 1
1.2 .NET框架和公共语言运行时 1
1.2.1 .NET框架 1
1.2.2 CLR与CLI 2
1.2.3 C#的执行过程 2
1.2.4 垃圾回收 4
1.3 面向对象的编程技术 4
1.3.1 类和对象 4
1.3.2 字段 5
1.3.3 方法 6
1.3.4 注释 6
1.4 使用Vsiual Studio 7
1.5 名字空间 10
1.6 解决方案和项目 10
1.7 控制台的输入与输出 11
1.7.1 控制台的输出 11
1.7.2 控制台的输入 13
习题 15
第2章 数据类型与表达式 16
2.1.NET数据类型 16
2.1.1 值类型 16
2.1.2 引用类型 16
2.2 C#的数据类型 17
2.2.1 简单类型 18
2.2.2 枚举 18
2.2.3 结构 20
2.2.4 拆箱与装箱 21
2.2.5 常量 21
2.2.6 字符和字符串 22
2.2.7 隐式类 23
2.3 表达式 23
2.3.1 算术运算符和算术表达式 24
2.3.2 关系运算符和关系表达式 24
2.3.3 逻辑运算符和逻辑表达式 24
2.3.4 赋值运算符和赋值表达式 25
2.3.5 自增运算符和自减运算符 25
2.3.6 问号表达式 26
2.3.7 位运算符 26
2.3.8 表达式中各运算符的运算顺序 28
2.4 常用数学函数 29
2.5 例题 30
习题 35
第3章 面向对象的编程1 36
3.1 面向对象编程 36
3.2 类的概念 37
3.2.1 类的声明 37
3.2.2 类成员的声明 39
3.2.3 类的字段 40
3.2.4 创建类的实例 41
3.2.5 类的方法 42
3.2.6 类的构造方法 44
3.3 类的属性 46
3.4 自实现属性 49
3.5 值类型和引用类型 50
3.6 静态字段和实例字段 51
习题 53
第4章 控制语句 54
4.1 程序的基本控制结构 54
4.2 控制语句 56
4.3 选择语句 56
4.3.1 if语句 56
4.3.2 if…else语句 57
4.3.3 switch语句 58
4.4 循环语句 61
4.4.1 while语句 61
4.4.2 do…while语句 62
4.4.3 for语句 63
4.4.4 循环的嵌套 64
4.5 跳转语句 65
4.5.1 break语句 65
4.5.2 continue语句 66
4.5.3 goto语句和语句标号 68
4.6 其他语句 69
4.7 程序设计实例 69
习题 71
第5章 数组 73
5.1 数组概述 73
5.1.1 声明和创建一维数组 73
5.1.2 数组元素的访问 74
5.1.3 数组使用举例 75
5.1.4 案例研究:洗牌与发牌模拟 77
5.2 foreach语句 81
5.3 数组的参数传递 82
5.3.1 将数组和数组元素传入方法 82
5.3.2 案例研究:GradeBook类用数组保存成绩 85
5.4 多维数组 89
5.4.1 多维数组的使用 89
5.4.2 案例研究:使用矩形数组的GradeBook 94
5.5 变长实参表 98
5.6 使用命令行实参 99
习题 101
第6章 方法 103
6.1 C#的代码包装 103
6.2 静态方法和静态变量 103
6.3 关于方法声明与使用 105
6.3.1 方法参数修饰符 108
6.3.2 参数传递的隐式转换与强制转换 111
6.3.3 方法重载 112
6.3.4 可选参数和命名参数 113
6.3.5 按值传递与按引用传递 115
6.4 .NET框架类库 124
6.5 声明的作用域 125
6.6 递归 127
习题 130
第7章 面向对象的编程2 133
7.1 Time类案例研究 133
7.2 控制对成员的访问 135
7.3 用this引用访问当前对象的成员 136
7.4 构造函数与析构函数 138
7.4.1 重载构造函数 138
7.4.2 默认构造函数 141
7.4.3 内存回收与析构函数 141
7.4.4 对象初始化器 143
7.5 合成 145
7.6 readonly实例变量 149
7.7 数据抽象与封装 151
7.8 Class View与Object Browser 152
习题 153
第8章 继承 155
8.1 基类与派生类 155
8.1.1 protected成员 155
8.1.2 基类与派生类的关系 155
8.2 派生类的构造函数 161
8.3 object类 167
习题 169
第9章 多态、接口和运算符重载 171
9.1 多态 171
9.1.1 多态举例 171
9.1.2 演示多态行为 172
9.1.3 抽象类和方法 175
9.1.4 案例研究:使用多态的工资系统 179
9.2 sealed方法和类 189
9.3 创建和使用接口 191
9.4 运算符重载 196
习题 202
第10章 异常处理 203
10.1 异常处理的例子 203
10.2 .NET的Exception层次 207
10.3 finally语句块 209
10.4 using语句 212
10.5 throw语句与抛出异常 212
10.6 Exception类的常用属性 214
10.7 用户定义异常类 214
习题 216
第11章 图形界面编程 218
11.1 Windows编程概述 218
11.1.1 窗体 219
11.1.2 事件处理 219
11.2 常用控件1 221
11.2.1 控件的属性和布局 221
11.2.2 卷标、文本框和按钮 222
11.2.3 组框、面板、复选框和单选钮 224
11.2.4 图片框 230
11.2.5 工具提示 233
11.2.6 数字调节控件 234
11.2.7 Timer组件 236
11.3 鼠标事件处理 237
11.4 键盘事件处理 240
11.5 常用控件2 243
11.5.1 MonthCalendar和DateTimePicker控件 243
11.5.2 ListBox、CheckedListBox和ComboBox 244
11.5.3 TreeView和ListView 249
11.5.4 TabControl控件 253
11.6 可视化继承 254
11.7 用户定义的控件 256
习题 257
第12章 GDI +、菜单、窗体和对话框 258
12.1 绘图基础知识 258
12.1.1 坐标系 258
12.1.2 GDI+绘图 258
12.2 在窗体上绘图 259
12.2.1 画笔和颜色 259
12.2.2 画刷 261
12.2.3 文字属性 262
12.2.4 绘图 262
12.3 在控件上绘图 264
12.4 菜单 266
12.4.1 菜单的基本概念 266
12.4.2 设计并使用菜单 266
12.4.3 设计上下文菜单 269
12.5 窗体 270
12.5.1 在项目中加入新的窗体 271
12.5.2 窗体的显示和隐藏 271
12.5.3 标准对话框 271
12.5.4 消息对话框 272
12.5.5 多文档程序 277
习题 280
第13章 文件和流 281
13.1 文件和流的基本概念 281
13.1.1 文件的概念 281
13.1.2 流的概念 281
13.2 文本文件的读写 282
13.2.1 StreamWriter 282
13.2.2 StreamReader 282
13.3 二进制文件的读写 285
13.3.1 FileStream 285
13.3.2 BinaryWriter和BinaryReader 286
13.3.3 序列化 290
13.4 目录和文件操作 293
13.4.1 目录操作 293
13.4.2 文件操作 296
习题 298
第14章 数据结构 299
14.1 数据与数据结构 299
14.1.1 数据 299
14.1.2 数据结构 300
14.2 线性表 302
14.2.1 线性表的逻辑结构及运算 302
14.2.2 线性表的存储结构 303
14.2.3 List类 309
14.2.4 LinkedList类 311
14.3 栈和队列 313
14.3.1 栈 313
14.3.2 Stack类 316
14.3.3 队列 318
14.3.4 Queue类 323
14.4 图和树 325
14.4.1 图的基本概念 325
14.4.2 带权图和最短路径 327
14.4.3 树的基本概念 329
14.4.4 二叉树 330
14.4.5 树的遍历 331
习题 331
参考文献 332