C#是由C语言和C++演变而来的,是少有的互联网诞生之后才推出的简单易学且功能强大的编程语言,备受开发人员青睐。使用C#开发Web应用、移动应用、虚拟现实和云计算应用是当前的一个流行方向。本书介绍了C#概述,简单的C#程序设计,数据类型、运算符与表达式,结构化程序设计,数组、结构和枚举,面向对象程序设计,继承与接口,窗体可视化应用程序设计,文件和流,客户机/服务器编程访问数据等内容。本书理实结合,结构严谨,突出应用性。本书可作为普通高等院校、高等职业院校、软件学院和培训机构的教材,也可作为从事软件开发与应用相关工作人员的参考用书。
刘甫迎,教授,硕士研究生导师,2006年获的国家级教学名师奖、成为当时全国高职高专首位获得该殊荣的教师。2006~2010年,担任高职高专计算机类专业教学指导委委员,曾获四川省有突出贡献的优秀专家称号,四川省优秀教师称号。1982年1月毕业于电子科技大学计算机工程专业。1975年至1995年在中国科学院成都计算机应用研究所,历任软件研究室副主任、副研究员。1985年在加拿大McMaster大学作中科院公派访问学者。作为负责人获国家精品课程一项,四川省精品课程二项,获四川省教学成果一、二等奖各一项。作为主编2002年获全国普通高等学校优秀教材二等奖。1981年获四川省重大科技成果奖。发表论文40余篇,主编出版教材、著作21部。2006年获教育部“十一五”规划教材立项两部。
目录
第1章 C#概述 1
1.1 C#简介 1
1.1.1 C#的由来 1
1.1.2 C#的特点 2
1.1.3 Microsoft .NET 4
1.1.4 C#的发展及C# 13.0与Visual Studio 2022的功能 6
1.2 C#的安装、启动和集成开发环境 10
1.2.1 C#的安装 10
1.2.2 C#的启动 13
1.2.3 C#的集成开发环境 16
习题 21
第2章 简单的C#程序设计 22
2.1 C#程序结构 22
2.1.1 第一个C#程序 22
2.1.2 编译和执行程序 23
2.1.3 C#程序结构分析 24
2.1.4 标识符 26
2.2 输入/输出方法 27
2.2.1 WriteLine( )方法 27
2.2.2 Write( )方法 30
2.2.3 ReadLine( )方法 31
2.2.4 Read( )方法 32
习题 32
第3章 数据类型、运算符与表达式 34
3.1 数据类型 34
3.1.1 值类型 34
3.1.2 引用类型 37
3.1.3 类型转换 39
3.1.4 装箱和拆箱 41
3.2 常量与变量 43
3.2.1 常量 43
3.2.2 变量 43
3.3 运算符与表达式 46
3.3.1 运算符 46
3.3.2 表达式 53
习题 56
第4章 结构化程序设计 57
4.1 结构化程序设计的概念 57
4.1.1 结构化程序设计与算法的概念 57
4.1.2 流程图 58
4.2 顺序结构 59
4.2.1 顺序结构的概念 59
4.2.2 顺序结构的实例 59
4.3 选择结构 60
4.3.1 选择结构的概念 60
4.3.2 条件语句 60
4.3.3 分支语句 66
4.3.4 选择结构的实例 68
4.4 循环结构 70
4.4.1 循环结构的概念 70
4.4.2 while语句和do…while语句 71
4.4.3 for语句和foreach语句 73
4.4.4 跳转语句 77
4.4.5 循环语句的算法——循环结构的实例 80
4.5 异常处理 82
4.5.1 异常处理的概念 82
4.5.2 异常的处理 83
习题 87
第5章 数组、结构和枚举 91
5.1 数组 91
5.1.1 数组的概念 91
5.1.2 一维数组 92
5.1.3 二维数组 96
5.1.4 冒泡排序算法——数组的实例 100
5.2 结构类型 101
5.2.1 结构的声明 101
5.2.2 结构成员的访问 102
5.2.3 顺序查找算法——结构的实例 103
5.3 枚举 105
5.3.1 枚举类型的定义 105
5.3.2 枚举成员的赋值 106
5.3.3 枚举成员的访问 108
习题 111
第6章 面向对象程序设计 114
6.1 面向对象程序设计的基本概念 114
6.2 类和对象 117
6.2.1 类的声明 118
6.2.2 类的成员 119
6.2.3 对象的声明 121
6.2.4 对象初始化器 123
6.3 构造函数和析构函数 125
6.3.1 构造函数 125
6.3.2 析构函数 128
6.4 方法 129
6.4.1 方法的定义与调用 129
6.4.2 方法的参数类型 132
6.4.3 方法的重载 134
6.4.4 静态方法与非静态方法 135
6.4.5 运算符的重载 136
6.4.6 递归 139
6.4.7 基于元组的“多”返回值 140
6.5 属性 141
6.5.1 属性的声明 141
6.5.2 属性的访问 143
6.6 索引指示器 144
6.6.1 定义索引指示器 144
6.6.2 使用索引指示器访问对象 145
6.7 委托和事件 147
6.7.1 委托 147
6.7.2 事件 149
6.8 C#常用的基础类 152
6.8.1 Math类与Random类 152
6.8.2 字符串 153
6.9 命名空间 157
6.9.1 命名空间的声明 157
6.9.2 命名空间的成员 158
6.9.3 命名空间的使用 158
习题 160
第7章 继承与接口 162
7.1 C#的继承机制 162
7.1.1 继承的基本知识 162
7.1.2 base关键字 164
7.1.3 覆盖 166
7.2 多态性 167
7.2.1 多态性的概述 167
7.2.2 虚方法 168
7.2.3 多态性的实现 168
7.3 接口 170
7.3.1 接口的定义 170
7.3.2 接口的成员 171
7.3.3 接口的实现 175
7.4 泛型、泛型接口和委托中的协变、逆变 190
7.4.1 泛型、泛型集合List<T>、IEnumerable<T>接口及yieldy语句 190
7.4.2 协变和逆变 194
7.4.3 泛型接口和委托中的协变和逆变 194
7.5 本地方法 198
习题 199
第8章 窗体可视化应用程序设计 201
8.1 Windows窗体 201
8.1.1 Windows窗体的基本属性 202
8.1.2 创建窗体 203
8.1.3 设置启动窗体属性 204
8.2 控件概述 205
8.2.1 控件的基本属性 206
8.2.2 控件共有的属性、事件和方法 207
8.3 命令按钮(Button)控件 214
8.4 标签(Label)控件 216
8.5 文本框(TextBox)控件 218
8.6 单选按钮(RadioButton)控件与复选框(CheckBox和CheckedListBox)
控件 219
8.7 面板(Panel)控件和分组框(GroupBox)控件 224
8.8 图形框(PictureBox)控件 226
8.9 列表框(ListBox)控件、带复选框的列表框 (CheckedListBox)控件和
组合框(ComboBox)控件 228
8.9.1 列表框(ListBox)控件 228
8.9.2 带复选框的列表框(CheckedListBox)控件 230
8.9.3 组合框(ComboBox)控件 231
习题 233
第9章 文件和流 235
9.1 文件和流的概念 235
9.2 文件的读和写 240
9.2.1 读文件 240
9.2.2 写文件 242
9.3 文件操作实例——链表算法 243
习题 247
第10章 客户机/服务器编程访问数据 248
10.1 客户机/服务器模式编程 248
10.2 ADO.NET的概念 249
10.3 ADO.NET对象 251
10.3.1 Connection对象 251
10.3.2 Command对象 252
10.3.3 DataReader对象 254
10.3.4 DataAdapter对象 254
10.3.5 DataSet对象 255
10.4 数据绑定控件 257
习题 259
第11章 多线程应用 260
11.1 多线程的基本概念 260
11.2 多线程编程 264
11.2.1 线程的优先级和执行状态 264
11.2.2 线程同步 265
习题 268
第12章 C#案例——FoxOA的人力资源培训成绩管理系统 269
12.1 系统的概述 269
12.1.1 办公自动化系统FoxOA 269
12.1.2 系统功能 270
12.2 系统分析与设计 270
12.2.1 计算机辅助软件工程工具 270
12.2.2 系统建模 270
12.3 主要关键技术 273
12.3.1 MVC设计模式简介 273
12.3.2 MVC设计模式的实现 273
12.4 数据库结构 274
12.5 用户使用说明书 274
12.5.1 系统平台 274
12.5.2 登录和进入系统 274
12.6 关键源程序 275
习题 294
附录A “程序设计基础(C#)”课程教学大纲 295
附录B “程序设计基础(C#)”课程实验指导书 297
附录C 模拟试题 302
C.1模拟考试试卷(一) 302
C.2模拟考试试卷(二) 304