第1章 初识C#编程 1
1.1 C#应用实例 2
1.2 C#入门 3
1.2.1 C#的来源 3
1.2.2 C#的基本思想 4
1.2.3 C#的技术体系 5
1.2.4 C#的应用领域和前景 5
1.2.5 如何学好C# 6
1.3 开发环境的搭建 7
1.3.1 操作系统要求 7
1.3.2 安装Visual Studio 2012开发平台 7
1.4 第1个WPF程序 9
1.4.1 WPF概述 9
1.4.2 为什么要学习WPF 10
1.4.3 XAML简介 11
1.4.4 XAML的优点 12
1.4.5 新建WPF项目 12
1.4.6 解决方案资源管理器项目模板 16
1.5 基于C#的物联网实训系统 17
1.5.1 数字量采集器及其相关设备 17
1.5.2 四模拟量采集器及其相关设备 18
1.5.3 实训系统开发实现过程 19
1.6 C#案例开发所涉及的基本术语 27
1.6.1 常用术语 27
1.6.2 命名空间 29
本章小结 31
习题 31
第2章 C#语法基础 33
案例展现 环境参数采集——数据表达式的使用 34
2.1 变量与常量 35
2.1.1 变量 35
2.1.2 常量 36
2.2 数据和内存 37
2.3 进制转换 38
2.3.1 二进制转换为十进制 39
2.3.2 十进制转换为二进制 40
2.4 C#基础数据类型 41
2.4.1 整型数据 43
2.4.2 实数类型 47
2.4.3 bool类型 49
2.4.4 字符类型 49
2.4.5 C#格式化输出 54
2.4.6 关键字 56
2.5 运算符与表达式 57
2.5.1 算术运算符 60
2.5.2 自增、自减运算符 63
2.5.3 赋值运算符 66
2.5.4 类型转换 67
2.5.5 关系运算符 72
2.5.6 逻辑运算符 73
2.5.7 位运算符 76
2.5.8 条件表达式 79
2.5.9 运算符优先级 81
2.6 C#编码规范 83
案例实现 环境参数采集——数据表达式的使用 85
本章小结 88
习题 89
第3章 流程控制 91
案例展现 智能环境控制——流程控制结构 92
3.1 控制结构 93
3.2 顺序结构 94
3.3 选择结构 96
3.3.1 if语句 99
3.3.2 switch语句 102
3.4 循环控制语句 104
3.4.1 while语句 105
3.4.2 do…while语句 106
3.4.3 for语句 107
3.4.4 嵌套循环 108
3.4.5 break语句和continue语句 109
3.5 异常处理 110
案例实现 智能环境控制——流程控制结构 112
本章小结 119
习题 119
第4章 数组与集合 121
案例展现 同时控制多个风扇和连续多次环境数据采集——数组的使用 122
4.1 数组概述 123
4.2 一维数组 123
4.2.1 一维数组的定义 123
4.2.2 一维数组的初始化 124
4.2.3 一维数组的使用 125
4.3 二维数组 131
4.3.1 二维数组的定义 132
4.3.2 二维数组的使用 133
4.4 可变数组 134
4.5 集合 135
4.5.1 ArrayList类简介 136
4.5.2 ArrayList类的应用 137
案例实现 同时控制多个风扇和连续多次环境数据采集——数组使用 144
本章小结 146
习题 147
第5章 函数 149
案例展现 路灯智能控制——函数的使用 150
5.1 函数的作用 151
5.2 函数的定义与调用 154
5.2.1 函数的定义 155
5.2.2 函数的调用 156
5.3 返回值 157
5.4 参数 160
5.4.1 值传递 161
5.4.2 地址传递 163
5.4.3 引用型参数(ref) 164
5.4.4 输出型参数(out) 165
5.4.5 参数匹配 166
5.5 递归调用 166
5.6 变量的作用域 169
5.6.1 局部变量 169
5.6.2 程序块中的局部变量 170
案例实现 路灯智能控制——函数的使用 170
本章小结 178
习题 179
第6章 面向对象编程——类和对象 181
案例展现 风扇开关控制——类的使用 182
6.1 面向对象的基本概念 183
6.2 类的定义和使用 184
6.2.1 类的定义 184
6.2.2 声明对象 188
6.2.3 属性 190
6.2.4 构造函数 191
6.2.5 析构函数和垃圾回收 194
6.2.6 实例演练——Adam4150类 196
6.3 类的高级应用 201
6.3.1 静态成员 201
6.3.2 常量成员 206
6.3.3 重载(Overload) 209
6.3.4 this关键字 218
6.3.5 索引 219
6.3.6 值类型和引用类型 223
6.3.7 引用符和对象的区别 226
6.3.8 声明对象数组 227
6.3.9 类视图 228
案例实现 风扇开关控制——类的使用 228
本章小结 235
习题 235
第7章 面向对象编程——继承和多态 237
案例展现 实验室路灯控制——类的继承、多态 238
7.1 继承 239
7.1.1 基类与派生类 240
7.1.2 protected成员 242
7.1.3 虚函数的重写 247
7.1.4 普通函数的隐藏 249
7.1.5 base关键字 250
7.1.6 密封类和密封函数 252
7.1.7 派生类的构造函数 252
7.1.8 万类之源——Object类 258
7.1.9 实例演练——由设备串口类派生出Adam4150类 260
7.2 多态性 270
7.2.1 派生类的对象和基类的关系 270
7.2.2 多态性的概念 271
7.2.3 抽象类和抽象函数 271
7.2.4 多态性的应用 272
7.2.5 is运算符 274
7.2.6 向下类型转换 275
7.2.7 接口 277
7.2.8 类关系图 281
案例实现 实验室路灯控制——类的继承、多态 282
本章小结 298
习题 298
第8章 线程处理 301
案例展现 温度自动控制——线程处理 302
8.1 线程概述 303
8.1.1 进程和线程 303
8.1.2 应用程序主线程 304
8.1.3 子线程的实现方法 305
8.2 线程的优先级 311
8.3 线程的插入 314
8.4 线程的状态 315
8.5 线程类 317
8.6 定时器DispatcherTimer 319
案例实现 温度自动控制——线程处理 325
本章小结 331
习题 331
附录 333
附录A 标准ASCII码表 333
附录B ADAM-4150协议指令集 335