本书介绍.NET开发平台Visual Studio,通过一个简单实例了解控制台方式和界面方式开发过程。然后系统介绍C#的编程基础、面向对象编程基础、面向对象编程进阶。此后介绍 Windows应用程序开发、GDI+编程、文件操作、数据库应用、多线程技术。本书理论联系实际,突出基本编程和基本概念,实验主要锻炼编程和应用。本书适合作为高校计算机及相关专业作为C#课程的入门教材,也适合作为技术人员的参考读物。
C#是微软.NET简单、方便和高效的程序设计语言。它在继承C++和Java等语言优点的基础上,不仅具有封装、继承和多态等特性,而且还增加了不少创新元素,广泛应用于开发桌面系统、Web应用、数据库应用、网络应用等各个方面,是目前主流的程序设计语言和开发工具。
本版在保持前几版的基本内容和基本方法的基础上,以Visual Studio 2015作为平台,对内容体系结构进行了调整、修改和优化,使本书的实用性进一步得到增强。数据库应用教程和对应的实验介绍了利用Visual C#操作MySQL, 同时提供了利用Visual C#操作SQL Server的文档,可通过华章网站下载。
本书包含教程、习题和实验三部分。教程部分先大致介绍.NET开发平台Visual Studio,通过一个简单实例讲解控制台方式和界面方式的开发过程。在这个基础上,比较系统地介绍C#的编程基础、面向对象编程基础和面向对象编程进阶。然后介绍了Windows应用程序开发、GDI+编程、文件操作、数据库应用和多线程编程。习题部分主要突出基本编程和基本概念,实验部分则主要用于锻炼读者的编程和应用能力,读者可以先跟着做,然后自己练习。一般来说,通过教程学习、习题练习,特别是认真的上机操作,读者在较短的时间内就基本能够在Visual Studio环境下用 Visual C#解决一些小的应用问题。
本书配有教学课件和所有应用实例的源文件以及相关文档,教师可用于辅助教学,学生可用于模仿和修改。需要者可在华章网站www.hzbook.com免费下载。
本书由郑阿奇(南京师范大学)和梁敬东(南京农业大学)主编。参加本教材编写工作的还有郑进、刘美芳等。许多同志对本书的编写提供了帮助,在此一并表示感谢!
由于编者水平有限,不当之处在所难免,恳请读者批评指正。
编者Email:easybooks@163.com。
编 者
2021.7
前言
第1章 .NET与C#基础1
1.1 Visual Studio集成开发环境1
1.1.1 Visual C#环境设置和Visual C#开发环境2
1.1.2 Visual Studio项目管理2
1.1.3 Visual Studio IDE界面元素4
1.2 C#程序入门11
1.2.1 C#项目的创建与分类11
1.2.2 个控制台应用程序12
1.2.3 个Windows窗体程序13
第2章 C#编程基础15
2.1 基本类型15
2.1.1 值类型15
2.1.2 引用类型17
2.1.3 值类型与引用类型的关系18
2.2 常量与变量20
2.2.1 常量20
2.2.2 变量22
2.3 表达式23
2.3.1 算术运算符23
2.3.2 关系运算符24
2.3.3 逻辑运算符25
2.3.4 位运算符26
2.3.5 赋值运算符28
2.3.6 条件运算符28
2.3.7 运算符的优先级与结合性29
2.3.8 表达式中的类型转换29
2.4 选择语句30
2.4.1 if语句30
2.4.2 switch语句32
2.5 循环语句33
2.5.1 while 语句33
2.5.2 do-while 语句34
2.5.3 for 语句35
2.6 跳转语句37
2.6.1 continue语句37
2.6.2 break语句38
2.6.3 return语句39
2.6.4 goto语句39
2.7 数组42
2.7.1 数组的定义42
2.7.2 数组的初始化43
2.7.3 数组元素的访问45
2.7.4 数组与System.Array47
2.7.5 使用foreach语句遍历数组元素49
2.8 综合应用实例50
第3章 面向对象编程基础53
3.1 面向对象的概念53
3.1.1 对象、类、实例化54
3.1.2 面向对象编程语言的三大原则54
3.2 类56
3.2.1 类的声明56
3.2.2 类的成员57
3.2.3 构造函数59
3.2.4 析构函数64
3.3 方法65
3.3.1 方法的声明66
3.3.2 方法的参数68
3.3.3 静态方法与实例方法73
3.3.4 方法的重载与覆盖75
3.4 属性79
3.5 综合应用实例83
第4章 面向对象编程进阶89
4.1 类的继承与多态89
4.1.1 继承89
4.1.2 多态94
4.2 操作符重载99
4.3 类型转换104
4.3.1 隐式类型转换104
4.3.2 显式类型转换107
4.3.3 使用Convert转换108
4.4 结构与接口110
4.4.1 结构110
4.4.2 接口111
4.5 集合与索引器114
4.5.1 集合114
4.5.2 索引器117
4.6 异常处理119
4.6.1 异常与异常类119
4.6.2 异常处理121
4.7 委托与事件125
4.7.1 委托125
4.7.2 事件128
4.8 预处理命令130
4.8.1 #define、#undef指令130
4.8.2 #if、#elif、#else、#endif指令131
4.8.3 #warning、#error指令132
4.8.4 #region、#endregion指令132
4.8.5 #line指令132
4.9 组件与程序集132
4.9.1 组件132
4.9.2 程序集133
4.10 泛型136
第5章 Windows应用程序开发139
5.1 开发应用程序的步骤139
5.2 窗体140
5.2.1 创建Windows应用程序项目141
5.2.2 选择启动窗体142
5.2.3 窗体属性142
5.2.4 窗体的常用方法和事件144
5.3 Windows控件的使用145
5.3.1 常用控件145
5.3.2 Label控件和LinkLabel控件147
5.3.3 Button控件149
5.3.4 TextBox控件150
5.3.5 RadioButton控件152
5.3.6 CheckBox控件153
5.3.7 ListBox控件154
5.3.8 ComboBox控件155
5.3.9 GroupBox控件156
5.3.10 ListView控件157
5.3.11 PictureBox控件158
5.3.12 StatusStrip控件159
5.3.13 Timer控件160
5.4 菜单162
5.4.1 在设计时创建菜单162
5.4.2 以编程方式创建菜单162
5.4.3 上下文菜单163
5.5 对话框167
5.5.1 消息框167
5.5.2 窗体对话框168
5.5.3 通用对话框169
5.6 多文档界面175
5.6.1 创建MDI父窗体175
5.6.2 创建MDI子窗体175
5.6.3 确定活动的MDI子窗体176
5.6.4 排列子窗体177
5.7 打印与打印预览177
5.7.1 在设计时创建打印作业178
5.7.2 选择打印机打印文件178
5.7.3 打印图形179
5.7.4 打印文本179
5.8 综合应用实例180
第6章 GDI+编程182
6.1 GDI+简介182
6.1.1 坐标系182
6.1.2 像素183
6.1.3 Graphics类183
6.2 绘图185
6.2.1 画笔185
6.2.2 画刷185
6.2.3 绘制直线186
6.2.4 绘制矩形187
6.2.5 绘制椭圆188
6.2.6 绘制圆弧189
6.2.7 绘制多边形191
6.3 颜色192
6.4 文本输出193
6.4.1 字体193
6.4.2 输出文本194
6.5 图像处理194
6.5.1 绘制图像194
6.5.2 刷新图像195
6.6 综合应用实例195
第7章 文件操作201
7.1 文件概述201
7.2 System.IO模型202
7.2.1 System.IO命名空间的资源202
7.2.2 System.IO命名空间的功能203
7.3 文件与目录类204
7.3.1 Directory类和Directory-Info类204
7.3.2 File类和FileInfo类205
7.3.3 Path类207
7.3.4 读取驱动器信息208
7.4 文件的读与写209
7.4.1 流209
7.4.2 读写文件210
7.4.3 读写二进制文件211
7.5 综合应用实例213
第8章 数据库应用218
8.1 创建MySQL数据库及其对象218
8.1.1 常用数据库对象简介218
8.1.2 常用SQL语句221
8.1.3 常用数据库对象的创建223
8.2 Visual C#操作数据库228
8.2.1 ADO.NET的架构228
8.2.2 Visual C#项目的建立229
8.2.3 安装MySQL 5.7的.NET驱动230
8.3 设计学生成绩管理系统231
8.3.1 主界面和系统代码的架构231
8.3.2 设计学生管理功能233
8.3.3 设计成绩管理功能238
第9章 多线程编程241
9.1 线程概述241
9.1.1 多线程工作方式242
9.1.2 什么时候使用多线程242
9.2 创建并控制线程243
9.2.1 线程的建立与启动243
9.2.2 线程的挂起、恢复与终止244
9.2.3 线程的状态及优先级247
9.3 线程的同步和通信250
9.3.1 lock关键字250
9.3.2 线程监视器251
9.3.3 线程间的通信252
9.3.4 子线程访问主线程的控件254
9.4 线程池和定时器256
9.4.1 线程池256
9.4.2 定时器256
9.5 互斥对象257
9.6 综合应用实例258
习题261
第1章 .NET与C#基础261
第2章 C#编程基础262
第3章 面向对象编程基础266
第4章 面向对象编程进阶269
第5章 Windows应用程序开发271
第6章 GDI+编程273
第7章 文件操作273
第8章 数据库应用274
第9章 多线程编程275
实验277
实验1 .NET与C#基础277
实验2 C#编程基础278
实验3 面向对象编程基础283
实验4 面向对象编程进阶291
实验5 Windows 应用程序开发296
实验6 GDI+编程300
实验7 文件操作303
实验8 数据库应用304
实验9 多线程编程306