第1章 C#概述 1
1.1 C#简介 1
1.1.1 C#的发展 1
1.1.2 C#的特点 2
1.1.3 VS2015等的新功能 4
1.1.4 Microsoft.NET平台 7
1.1.5 C#的运行环境及安装 8
1.2 C#集成开发环境 12
1.2.1 C#的启动 12
1.2.2 C#集成开发环境 13
习题 18
第2章 简单的C#程序设计 19
2.1 C#程序结构 19
2.1.1 第一个C#程序 19
2.1.2 编译和执行程序 20
2.1.3 C#程序结构分析 21
2.1.4 标识符 23
2.2 输入/输出操作 24
2.2.1 Console.WriteLine()方法 24
2.2.2 Console.Write()方法 27
2.2.3 Console.ReadLine()方法 28
2.2.4 Console.Read()方法 28
习题 29
第3章 数据类型、运算符与表达式 30
3.1 数据类型 30
3.1.1 值类型 30
3.1.2 引用类型 33
3.1.3 类型转换 35
3.1.4 装箱和拆箱 37
3.2 常量与变量 38
3.2.1 常量 39
3.2.2 变量 39
3.3 运算符和表达式 41
3.3.1 运算符 41
3.3.2 表达式 49
习题 51
第4章 结构化程序设计 53
4.1 结构化程序设计的概念 53
4.1.1 结构化程序设计的概念及算法的概念 53
4.1.2 流程图 54
4.2 顺序结构 55
4.2.1 顺序结构的概念 55
4.2.2 顺序结构的实例 55
4.3 选择结构 56
4.3.1 选择结构的概念 56
4.3.2 条件语句 57
4.3.3 分支语句 62
4.3.4 选择结构的实例 65
4.4 循环结构 66
4.4.1 循环结构的概念 67
4.4.2 while语句和do-while语句 67
4.4.3 for语句和foreach语句 70
4.4.4 跳转语句 73
4.4.5 循环语句的算法——循环结构的实例 76
4.5 异常处理 78
4.5.1 异常处理的概念 79
4.5.2 异常的处理 80
习题 84
第5章 数组、结构和枚举 87
5.1 数组 87
5.1.1 数组的概念 87
5.1.2 一维数组 88
5.1.3 二维数组 92
5.1.4 “冒泡排序”算法——数组的实例 95
5.2 结构类型 97
5.2.1 结构的声明 97
5.2.2 结构成员的访问 98
5.2.3 顺序查找算法——结构的实例 99
5.3 枚举 101
5.3.1 枚举类型的定义 101
5.3.2 枚举成员的赋值 102
5.3.3 枚举成员的访问 104
习题 106
第6章 C#的面向对象程序设计 109
6.1 面向对象程序设计的基本概念 109
6.2 类和对象 112
6.2.1 类的声明 113
6.2.2 类的成员 114
6.2.3 对象的声明 116
6.2.4 对象初始化器 118
6.3 构造函数和析构函数 119
6.3.1 构造函数 119
6.3.2 析构函数 123
6.4 方法 124
6.4.1 方法的定义及调用 124
6.4.2 方法的参数类型 126
6.4.3 方法的重载 129
6.4.4 静态方法与非静态方法 130
6.4.5 运算符的重载 130
6.4.6 递归 133
6.5 属性 134
6.5.1 属性的声明 135
6.5.2 属性的访问 136
6.6 索引指示器 138
6.6.1 定义索引指示器 138
6.6.2 使用索引指示器访问对象 139
6.7 委托与事件 140
6.7.1 委托 140
6.7.2 事件 142
6.8 C#常用的基础类 144
6.8.1 Math类与Random类 145
6.8.2 字符串 146
6.9 命名空间 149
6.9.1 命名空间的声明 149
6.9.2 命名空间的成员 150
6.9.3 命名空间的使用 151
习题 152
第7章 继承和接口 155
7.1 C#的继承机制 155
7.1.1 继承的基本知识 155
7.1.2 base关键字 157
7.1.3 覆盖 159
7.2 多态性 160
7.2.1 多态性概述 160
7.2.2 虚方法 161
7.2.3 多态性的实现 161
7.3 接口 163
7.3.1 接口的定义 163
7.3.2 接口的成员 164
7.3.3 接口的实现 168
7.4 泛型、泛型接口和委托中的协变、逆变 184
7.4.1 泛型、泛型集合List<T>、IEnumerable<T>接口及yield 184
7.4.2 协变和逆变 187
7.4.3 泛型接口和委托中的协变和逆变 187
习题 191
第8章 可视化应用程序设计 192
8.1 Windows窗体 192
8.1.1 Windows窗体的基本属性 193
8.1.2 创建窗体 195
8.1.3 设置启动窗体属性 195
8.2 控件概述 196
8.2.1 控件的基本属性 196
8.2.2 控件共有的属性、事件和方法 197
8.3 命令按钮控件(Button) 205
8.4 标签控件(Label) 207
8.6 单选按钮(RadioButton)和复选框(CheckBox和CheckedListBox) 211
8.7 面板控件(Panel)和分组框(GroupBox)控件 215
8.8 图形框控件(PictureBox) 218
8.9 列表框(ListBox)、带复选框的列表框(Checked ListBox)和组合框(ComboBox)控件 219
8.9.1 列表框控件(ListBox) 219
8.9.2 带复选框的列表框控件(CheckedListBox) 221
8.9.3 组合框控件(ComboBox) 222
习题 224
第9章 C#的文件和流 226
9.1 文件和流的概念 226
9.2 文件的读和写 231
9.2.1 读文件 231
9.2.2 写文件 232
9.3 文件操作实例——链表算法 233
习题 238
第10章 客户机/服务器(C/S)编程访问数据 239
10.1 客户机/服务器(C/S)模式编程 239
10.2 ADO.NET概念 240
10.3 ADO.NET对象 242
10.3.1 Connection对象 242
10.3.3 DataReader对象 244
10.3.4 DataAdapter(数据适配器)对象 245
10.3.5 DataSet对象 246
10.4 数据绑定控件 248
习题 249
第11章 C#的多线程应用 250
11.1 多线程简介 250
11.2 多线程编程 254
11.2.1 线程的优先级和执行状态 254
11.2.2 线程同步 255
习题 257
第12章 C#案例——FoxOA的人力资源培训成绩管理系统 258
12.1 系统概述 258
12.1.1 办公自动化系统FoxOA 258
12.1.2 系统功能 259
12.2 系统分析与设计(UML) 259
12.2.1 计算机辅助软件工程(CASE)工具——PD 259
12.2.2 系统建模 259
12.3 主要关键技术 261
12.3.1 MVC设计模式简介 261
12.3.2 MVC设计模式的实现 262
12.4 数据库结构 262
12.5 用户使用说明书 263
12.5.1 系统平台 263
12.5.2 登录和进入系统 263
12.6 关键源程序 264
习题 282
附录A《C#程序设计课程》教学大纲 283
附录B《C#程序设计课程》实验指导书 284