1. 首页
  2. 编程语言
  3. C#
  4. 零基础学C#.明日科技(带详细书签)全彩版.pdf

零基础学C#.明日科技(带详细书签)全彩版.pdf

上传者: 2019-04-15 00:46:33上传 PDF文件 110.97MB 热度 129次
是针对零基础编程学习者全新研发的C#入门教程。从初学者角度出发,通过通俗易懂的语言、流行有趣的实例,详细地介绍了使用C语言进行程序开发需要掌握的知识和技术。全书共分16章,包括VisualStudio的安装、踏上C#开发的征程、必须学会的C#语法、流程控制语句、看似简单的字符串、面向对象程序设计、Windows交互式图形界面、数据访问技术、程序调试与异常处理、多线程编程技术以及五子棋大厅游戏等。书中所有知识都结合具体实例进行讲解,设计的程序代码给出了详细的注释,可以使读者轻松领会C#程序开发的精髓,快速提高开发技能。本书通过大量实例及一个完整项目案例,帮助读者更好地巩固所学知识,提升能力;随书附赠的《小白实战手册》中给出了3个流行且实用的案例的详细开发流程,力 求让学习者能学以致用,真正获得开发经验;附赠的光盘中给出视频讲解、实例及项目源码、代码查错器、练一练和动手纠错答案等,方便读者学习;书中设置了200多个二维码,扫描二维码观看视频讲解,解决学习疑难;不易理解的专业术语、代码难点只需手机扫描文字下方的e学码获得更多扩展解释,随时扫除学习障碍。此外,登录明日学院网站还可以获得更多学习资源和技术支持。图书与《小白实战手册》+光盘+二维码+e学码+明日学院,实现立体化、多方面的教学模式,拉低编程门槛,让零基础者轻松跨入编程领域。 第1篇 基础知识 1 第1章 宇宙第一IDE——Visual Studio 2 1.1 了解软件 3 1.2 软件开发相关的概念 4 1.3 C#语言入门 6 1.3.1 C#语言的发展 6 1.3.2 C#语言的特点 7 1.3.3 认识.NET Framework 7 1.3.4 C#与.NET Framework 8 1.3.5 C#的应用领域 8 1.4 Visual Studio 2017的安装与卸载 10 1.4.1 安装Visual Studio 2017必备条件 10 1.4.2 安装Visual Studio 2017 10 1.4.3 卸载Visual Studio 2017 14 1.5 熟悉Visual Studio 2017开发环境 15 1.5.1 创建项目 15 1.5.2 菜单栏 17 1.5.3 工具栏 17 1.5.4 解决方案资源管理器 18 1.5.5 “工具箱”窗口 18 1.5.6 “属性”窗口 19 1.5.7 “错误列表”窗口 19 1.6 难点解答 20 1.6.1 学习C#编程必须安装Visual Studio开发环境吗? 20 1.6.2 学习C#的网站 20 1.7 小结 20 第2章 踏上C# 开发的征程 21 2.1 编写第一个C#程序 22 2.2 C#程序结构预览 24 2.2.1 命名空间 25 2.2.2 类 27 2.2.3 关键字与标识符 28 2.2.4 Main方法 29 2.2.5 C#语句 30 2.2.6 注释 32 2.2.7 一个完整的C#程序 34 2.3 程序编写规范 35 2.3.1 代码编写规则 36 2.3.2 命名规范 36 2.4 难点解答 38 2.4.1 区分常见的3种项目类型 38 2.4.2 为什么要使用注释? 39 2.5 小结 41 2.6 动手纠错 41 第3章 必须学会的C#语法 43 3.1 为什么要使用变量 44 3.2 变量是什么 44 3.3 变量的声明及初始化 45 3.3.1 声明变量 45 3.3.2 简单数据类型 46 3.3.3 变量的初始化 55 3.3.4 变量的作用域 57 3.4 常量 59 3.4.1 常量是什么 59 3.4.2 常量的分类 59 3.5 运算符 61 3.5.1 算术运算符 61 3.5.2 自增自减运算符 63 3.5.3 赋值运算符 63 3.5.4 关系运算符 65 3.5.5 逻辑运算符 67 3.5.6 位运算符 69 3.5.7 移位运算符 70 3.5.8 条件运算符 71 3.6 数据类型转换 73 3.6.1 隐式类型转换 73 3.6.2 显式类型转换 73 3.6.3 使用Convert类进行转换 74 3.7 运算符优先级与结合性 76 3.8 难点解答 77 3.8.1 使用赋值运算符时的注意事项 77 3.8.2 条件运算符不能单独作为语句 78 3.9 小结 78 3.10 动手纠错 79 第4章 流程控制语句 81 4.1 决策分支 82 4.2 if语句 82 4.2.1 最简单的if语句 83 4.2.2 if…else语句 85 4.2.3 if…else if…else语句 88 4.2.4 if语句的嵌套 91 4.3 switch多分支语句 93 4.3.1 switch语句 93 4.3.2 switch与if…else if…else的区别 97 4.4 while和do…while循环 97 4.4.1 while循环 97 4.4.2 do…while循环 100 4.4.3 while和do…while语句的区别 101 4.5 for循环 102 4.5.1 for循环的一般形式 102 4.5.2 for循环的变体 103 4.5.3 for循环中逗号的应用 105 4.6 循环的嵌套 105 4.7 跳转语句 108 4.7.1 break语句 108 4.7.2 continue语句 110 4.8 难点解答 111 4.8.1 3种循环的使用场景 111 4.8.2 continue和break语句的区别 111 4.9 小结 112 4.10 动手纠错 112 第5章 数组—批量数据处理 113 5.1 数组概述 114 5.2 一维数组 115 5.2.1 一维数组的创建 115 5.2.2 一维数组的初始化 116 5.2.3 一维数组的使用 117 5.3 二维数组 118 5.3.1 二维数组的创建 118 5.3.2 二维数组的初始化 120 5.3.3 二维数组的使用 122 5.3.4 不规则数组的定义 123 5.4 数组与Array类 124 5.5 数组的基本操作 126 5.5.1 使用foreach语句遍历数组 126 5.5.2 对数组进行排序 128 5.6 难点解答 129 5.6.1 为什么数组的索引从0开始? 129 5.6.2 如何获取二维数组的列数? 129 5.7 小结 130 5.8 动手纠错 130 第6章 看似简单的字符串 131 6.1 什么是字符串 132 6.2 字符串的声明与初始化 132 6.2.1 声明字符串 132 6.2.2 字符串的初始化 133 6.3 提取字符串信息 134 6.3.1 获取字符串长度 134 6.3.2 获取指定位置的字符 134 6.3.3 获取子字符串索引位置 135 6.3.4 判断字符串首尾内容 137 6.4 字符串操作 138 6.4.1 字符串的拼接 138 6.4.2 比较字符串 139 6.4.3 字符串的大小写转换 141 6.4.4 格式化字符串 141 6.4.5 截取字符串 146 6.4.6 分割字符串 147 6.4.7 去除空白内容 149 6.4.8 替换字符串 150 6.5 可变字符串类 151 6.5.1 StringBuilder类的定义 151 6.5.2 StringBuilder类的使用 152 6.6 难点解答 153 6.6.1 null和""的区别 153 6.6.2 StringBuilder类与string类的区别 153 6.7 小结 154 6.8 动手纠错 154 第7章 面向对象程序设计 155 7.1 面向对象概述 156 7.1.1 对象 156 7.1.2 类 158 7.1.3 三大基本特征 158 7.2 类 160 7.2.1 类的声明 160 7.2.2 类的成员 160 7.2.3 构造函数 164 7.2.4 析构函数 167 7.2.5 权限修饰符 168 7.3 方法 169 7.3.1 方法的声明 169 7.3.2 方法的参数 170 7.3.3 方法的重载 172 7.4 类的静态成员 174 7.5 对象的创建及使用 175 7.5.1 对象的创建 175 7.5.2 对象的销毁 177 7.5.3 类与对象的关系 178 7.6 继承 178 7.6.1 继承的实现 178 7.6.2 base关键字 181 7.6.3 继承中的构造函数与析构函数 183 7.7 多态 183 7.7.1 虚方法的重写 184 7.7.2 抽象类与抽象方法 186 7.7.3 接口的使用 188 7.8 难点解答 192 7.8.1 ref参数和params参数的使用 192 7.8.2 抽象类与接口的区别 193 7.9 小结 193 7.10 动手纠错 193 第2篇 核心技术 195 第8章 Windows 交互式图形界面 196 8.1 开发应用程序的步骤 197 8.2 Form窗体 199 8.2.1 添加和删除窗体 200 8.2.2 多窗体的使用 201 8.2.3 窗体的属性 202 8.2.4 窗体的显示与隐藏 204 8.2.5 窗体的事件 205 8.3 MDI窗体 207 8.3.1 MDI窗体的概念 207 8.3.2 如何设置MDI窗体 208 8.3.3 排列MDI子窗体 209 8.4 难点解答 211 8.4.1 Show方法和ShowDialog方法的区别 211 8.4.2 如何实现MDI窗体不重复打开同一个子窗体? 212 8.5 小结 212 8.6 动手纠错 213 第9章 Windows 控件—C/S程序的基础...215 215 9.1 控件概述 216 9.2 控件的相关操作 217 9.2.1 添加控件 217 9.2.2 对齐控件 217 9.2.3 删除控件 218 9.3 Windows控件的使用 218 9.3.1 Label控件 218 9.3.2 Button控件 219 9.3.3 TextBox控件 220 9.3.4 RadioButton控件 221 9.3.5 CheckBox控件 223 9.3.6 RichTextBox控件 225 9.3.7 ComboBox控件 227 9.3.8 ListBox控件 228 9.3.9 GroupBox控件 230 9.3.10 ListView控件 230 9.3.11 TreeView控件 233 9.3.12 ImageList组件 237 9.3.13 Timer组件 237 9.4 菜单、工具栏与状态栏 239 9.4.1 MenuStrip控件 239 9.4.2 ToolStrip控件 240 9.4.3 StatusStrip控件 241 9.5 对话框 243 9.5.1 消息框 244 9.5.2 打开对话框控件 245 9.5.3 另存为对话框控件 246 9.5.4 浏览文件夹对话框控件 247 9.6 难点解答 248 9.6.1 在窗体中看不到可视控件的原因 248 9.6.2 控件和组件的区别 249 9.7 小结 249 9.8 动手纠错 249 第10章 数据访问技术 251 10.1 ADO.NET概述 252 10.1.1 ADO.NET对象模型 252 10.1.2 数据访问命名空间 253 10.2 Connection数据连接对象 253 10.2.1 熟悉Connection对象 254 10.2.2 数据库连接字符串 254 10.2.3 应用SqlConnection对象连接数据库 255 10.3 Command命令执行对象 256 10.3.1 熟悉Command对象 256 10.3.2 应用Command对象操作数据 257 10.3.3 应用Command对象调用存储过程 258 10.4 DataReader数据读取对象 260 10.4.1 DataReader对象概述 260 10.4.2 使用DataReader对象检索数据 261 10.5 DataSet对象和DataAdapter操作对象 263 10.5.1 DataSet对象 263 10.5.2 DataAdapter对象 264 10.5.3 填充DataSet数据集 265 10.6 DataGridView控件的使用 266 10.7 Entity Framework编程基础 269 10.7.1 什么是Entity Framework 269 10.7.2 Entity Framework实体数据模型 270 10.7.3 Entity Framework运行环境 270 10.7.4 创建实体数据模型 271 10.7.5 通过EF对数据表进行增删改查操作 274 10.8 难点解答 276 10.8.1 DataSet对象与DataReader对象的区别 276 10.8.2 EF相对于ADO.NET的优势 277 10.9 小结 277 10.10 动手纠错 277 第11章 程序调试与异常处理 279 11.1 程序调试 280 11.1.1 Visual Studio编辑器调试 280 11.1.2 Visual Studio调试器调试 281 11.2 异常处理 285 11.2.1 try…catch语句 286 11.2.2 try…catch…f inally语句 287 11.2.3 throw语句 288 11.3 难点解答 290 11.3.1 使用多个catch时的注意事项 290 11.3.2 异常的使用原则 291 11.4 小结 292 11.5 动手纠错 292 第3篇 高级应用 293 第12章 I/O 数据流技术 294 12.1 文件基本操作 295 12.1.1 File类 295 12.1.2 FileInfo类 296 12.1.3 判断文件是否存在 297 12.1.4 创建文件 298 12.1.5 复制文件 299 12.1.6 移动文件 299 12.1.7 删除文件 300 12.1.8 获取文件基本信息 301 12.2 文件夹基本操作 302 12.2.1 Directory类 303 12.2.2 DirectoryInfo类 303 12.2.3 判断文件夹是否存在 304 12.2.4 创建文件夹 305 12.2.5 移动文件夹 305 12.2.6 删除文件夹 306 12.2.7 遍历文件夹 307 12.3 I/O(输入/输出) 310 12.3.1 流概述 310 12.3.2 文件I/O流介绍 311 12.3.3 使用I/O流操作文本文件 313 12.4 难点解答 316 12.4.1 文本文件的编码方式 316 12.4.2 什么时候使用输入流?什么时候使用输出流? 316 12.5 小结 317 12.6 动手纠错 317 第13章 GDI+ 绘图应用 319 13.1 GDI+绘图基础 320 13.1.1 GDI+概述 320 13.1.2 Graphics绘图类 320 13.2 设置画笔与画刷 321 13.2.1 设置画笔 321 13.2.2 设置画刷 322 13.3 绘制几何图形 323 13.3.1 绘制图形 325 13.3.2 填充图形 327 13.4 绘制图像 329 13.5 难点解答 330 13.5.1 解决图像消失的问题 330 13.5.2 实现图像特殊效果的通用方法 331 13.6 小结 332 13.7 动手纠错 332 第14章 Socket 网络编程 333 14.1 计算机网络基础 334 14.1.1 局域网与广域网 334 14.1.2 网络协议 334 14.1.3 端口及套接字 336 14.2 IP地址封装 337 14.3 TCP程序设计 340 14.3.1 Socket类 340 14.3.2 TcpClient类和TcpListener类 342 14.3.3 TCP网络程序实例 343 14.4 UDP程序设计 346 14.4.1 UdpClient类 346 14.4.2 UDP网络程序实例 347 14.5 难点解答 351 14.5.1 TCP协议和UDP协议的区别 351 14.5.2 网络之间可以传递哪些数据? 351 14.6 小结 351 14.7 动手纠错 351 第15章 多线程编程技术 353 15.1 线程概述 354 15.1.1 线程的定义与分类 354 15.1.2 多线程的优缺点 355 15.2 线程的实现 355 15.2.1 使用Thread类创建线程 355 15.2.2 线程的生命周期 358 15.3 操作线程的方法 359 15.3.1 线程的休眠 359 15.3.2 线程的加入 361 15.3.3 线程的终止 363 15.3.4 线程的优先级 364 15.4 线程的同步 365 15.4.1 线程同步机制 366 15.4.2 使用lock关键字实现线程同步 367 15.4.3 使用Monitor类实现线程同步 369 15.4.4 使用Mutex类实现线程同步 371 15.5 难点解答 372 15.5.1 过时的Suspend方法和Resume方法 372 15.5.2 了解线程池 373 15.6 小结 373 15.7 动手纠错 374 第4篇 项目实战 375 第16章 五子棋大厅游戏 376 16.1 开发背景 377 16.2 系统功能设计 377 16.2.1 系统功能结构 377 16.2.2 系统业务流程 377 16.3 系统开发必备 378 16.3.1 系统开发环境要求 378 16.3.2 数据库设计 379 16.3.3 项目目录结构预览 379 16.3.4 界面预览 380 16.4 自定义UDP协议控件 382 16.5 服务器窗体设计 386 16.5.1 服务器窗体概述 386 16.5.2 设计服务器窗体 386 16.5.3 开始/停止服务 387 16.5.4 设置分数排名方式 387 16.5.5 关闭服务器 388 16.6 客户端注册窗体设计 389 16.6.1 客户端注册窗体概述 389 16.6.2 设计客户端注册窗体 389 16.6.3 系统加载时获取本地IP地址 390 16.6.4 在下拉列表中绘制图片 391 16.6.5 注册用户功能的实现 392 16.7 五子棋大厅窗体设计 394 16.7.1 五子棋大厅窗体概述 394 16.7.2 设计五子棋大厅窗体 395 16.7.3 循环播放背景音乐 396 16.7.4 进入指定的房间 396 16.7.5 进入指定的座位 399 16.7.6 局域网内的公共聊天 402 16.8 游戏对决窗体设计 403 16.8.1 游戏对决窗体概述 403 16.8.2 设计游戏对决窗体 404 16.8.3 开始五子棋对决 405 16.8.4 五子棋算法实现 407 16.8.5 在棋盘上添加双方的棋子 411 16.8.6 判断双方的输赢 414 16.9 小结 416 附录 实例索引 417 求让学习者能学以致用,真正获得开发经验;附赠的光盘中给出视频讲解、实例及项目源码、代码查错器、练一练和动手纠错答案等,方便读者学习;书中设置了200多个二维码,扫描二维码观看视频讲解,解决学习疑难;不易理解的专业术语、代码难点只需手机扫描文字下方的e学码获得更多扩展解释,随时扫除学习障碍。此外,登录明日学院网站还可以获得更多学习资源和技术支持。图书与《小白实战手册》+光盘+二维码+e学码+明日学院,实现立体化、多方面的教学模式,拉低编程门槛,让零基础者轻松跨入编程领域。 第1篇 基础知识 1 第1章 宇宙第一IDE——Visual Studio 2 1.1 了解软件 3 1.2 软件开发相关的概念 4 1.3 C#语言入门 6 1.3.1 C#语言的发展 6 1.3.2 C#语言的特点 7 1.3.3 认识.NET Framework 7 1.3.4 C#与.NET Framework 8 1.3.5 C#的应用领域 8 1.4 Visual Studio 2017的安装与卸载 10 1.4.1 安装Visual Studio 2017必备条件 10 1.4.2 安装Visual Studio 2017 10 1.4.3 卸载Visual Studio 2017 14 1.5 熟悉Visual Studio 2017开发环境 15 1.5.1 创建项目 15 1.5.2 菜单栏 17 1.5.3 工具栏 17 1.5.4 解决方案资源管理器 18 1.5.5 “工具箱”窗口 18 1.5.6 “属性”窗口 19 1.5.7 “错误列表”窗口 19 1.6 难点解答 20 1.6.1 学习C#编程必须安装Visual Studio开发环境吗? 20 1.6.2 学习C#的网站 20 1.7 小结 20 第2章 踏上C# 开发的征程 21 2.1 编写第一个C#程序 22 2.2 C#程序结构预览 24 2.2.1 命名空间 25 2.2.2 类 27 2.2.3 关键字与标识符 28 2.2.4 Main方法 29 2.2.5 C#语句 30 2.2.6 注释 32 2.2.7 一个完整的C#程序 34 2.3 程序编写规范 35 2.3.1 代码编写规则 36 2.3.2 命名规范 36 2.4 难点解答 38 2.4.1 区分常见的3种项目类型 38 2.4.2 为什么要使用注释? 39 2.5 小结 41 2.6 动手纠错 41 第3章 必须学会的C#语法 43 3.1 为什么要使用变量 44 3.2 变量是什么 44 3.3 变量的声明及初始化 45 3.3.1 声明变量 45 3.3.2 简单数据类型 46 3.3.3 变量的初始化 55 3.3.4 变量的作用域 57 3.4 常量 59 3.4.1 常量是什么 59 3.4.2 常量的分类 59 3.5 运算符 61 3.5.1 算术运算符 61 3.5.2 自增自减运算符 63 3.5.3 赋值运算符 63 3.5.4 关系运算符 65 3.5.5 逻辑运算符 67 3.5.6 位运算符 69 3.5.7 移位运算符 70 3.5.8 条件运算符 71 3.6 数据类型转换 73 3.6.1 隐式类型转换 73 3.6.2 显式类型转换 73 3.6.3 使用Convert类进行转换 74 3.7 运算符优先级与结合性 76 3.8 难点解答 77 3.8.1 使用赋值运算符时的注意事项 77 3.8.2 条件运算符不能单独作为语句 78 3.9 小结 78 3.10 动手纠错 79 第4章 流程控制语句 81 4.1 决策分支 82 4.2 if语句 82 4.2.1 最简单的if语句 83 4.2.2 if…else语句 85 4.2.3 if…else if…else语句 88 4.2.4 if语句的嵌套 91 4.3 switch多分支语句 93 4.3.1 switch语句 93 4.3.2 switch与if…else if…else的区别 97 4.4 while和do…while循环 97 4.4.1 while循环 97 4.4.2 do…while循环 100 4.4.3 while和do…while语句的区别 101 4.5 for循环 102 4.5.1 for循环的一般形式 102 4.5.2 for循环的变体 103 4.5.3 for循环中逗号的应用 105 4.6 循环的嵌套 105 4.7 跳转语句 108 4.7.1 break语句 108 4.7.2 continue语句 110 4.8 难点解答 111 4.8.1 3种循环的使用场景 111 4.8.2 continue和break语句的区别 111 4.9 小结 112 4.10 动手纠错 112 第5章 数组—批量数据处理 113 5.1 数组概述 114 5.2 一维数组 115 5.2.1 一维数组的创建 115 5.2.2 一维数组的初始化 116 5.2.3 一维数组的使用 117 5.3 二维数组 118 5.3.1 二维数组的创建 118 5.3.2 二维数组的初始化 120 5.3.3 二维数组的使用 122 5.3.4 不规则数组的定义 123 5.4 数组与Array类 124 5.5 数组的基本操作 126 5.5.1 使用foreach语句遍历数组 126 5.5.2 对数组进行排序 128 5.6 难点解答 129 5.6.1 为什么数组的索引从0开始? 129 5.6.2 如何获取二维数组的列数? 129 5.7 小结 130 5.8 动手纠错 130 第6章 看似简单的字符串 131 6.1 什么是字符串 132 6.2 字符串的声明与初始化 132 6.2.1 声明字符串 132 6.2.2 字符串的初始化 133 6.3 提取字符串信息 134 6.3.1 获取字符串长度 134 6.3.2 获取指定位置的字符 134 6.3.3 获取子字符串索引位置 135 6.3.4 判断字符串首尾内容 137 6.4 字符串操作 138 6.4.1 字符串的拼接 138 6.4.2 比较字符串 139 6.4.3 字符串的大小写转换 141 6.4.4 格式化字符串 141 6.4.5 截取字符串 146 6.4.6 分割字符串 147 6.4.7 去除空白内容 149 6.4.8 替换字符串 150 6.5 可变字符串类 151 6.5.1 StringBuilder类的定义 151 6.5.2 StringBuilder类的使用 152 6.6 难点解答 153 6.6.1 null和""的区别 153 6.6.2 StringBuilder类与string类的区别 153 6.7 小结 154 6.8 动手纠错 154 第7章 面向对象程序设计 155 7.1 面向对象概述 156 7.1.1 对象 156 7.1.2 类 158 7.1.3 三大基本特征 158 7.2 类 160 7.2.1 类的声明 160 7.2.2 类的成员 160 7.2.3 构造函数 164 7.2.4 析构函数 167 7.2.5 权限修饰符 168 7.3 方法 169 7.3.1 方法的声明 169 7.3.2 方法的参数 170 7.3.3 方法的重载 172 7.4 类的静态成员 174 7.5 对象的创建及使用 175 7.5.1 对象的创建 175 7.5.2 对象的销毁 177 7.5.3 类与对象的关系 178 7.6 继承 178 7.6.1 继承的实现 178 7.6.2 base关键字 181 7.6.3 继承中的构造函数与析构函数 183 7.7 多态 183 7.7.1 虚方法的重写 184 7.7.2 抽象类与抽象方法 186 7.7.3 接口的使用 188 7.8 难点解答 192 7.8.1 ref参数和params参数的使用 192 7.8.2 抽象类与接口的区别 193 7.9 小结 193 7.10 动手纠错 193 第2篇 核心技术 195 第8章 Windows 交互式图形界面 196 8.1 开发应用程序的步骤 197 8.2 Form窗体 199 8.2.1 添加和删除窗体 200 8.2.2 多窗体的使用 201 8.2.3 窗体的属性 202 8.2.4 窗体的显示与隐藏 204 8.2.5 窗体的事件 205 8.3 MDI窗体 207 8.3.1 MDI窗体的概念 207 8.3.2 如何设置MDI窗体 208 8.3.3 排列MDI子窗体 209 8.4 难点解答 211 8.4.1 Show方法和ShowDialog方法的区别 211 8.4.2 如何实现MDI窗体不重复打开同一个子窗体? 212 8.5 小结 212 8.6 动手纠错 213 第9章 Windows 控件—C/S程序的基础...215 215 9.1 控件概述 216 9.2 控件的相关操作 217 9.2.1 添加控件 217 9.2.2 对齐控件 217 9.2.3 删除控件 218 9.3 Windows控件的使用 218 9.3.1 Label控件 218 9.3.2 Button控件 219 9.3.3 TextBox控件 220 9.3.4 RadioButton控件 221 9.3.5 CheckBox控件 223 9.3.6 RichTextBox控件 225 9.3.7 ComboBox控件 227 9.3.8 ListBox控件 228 9.3.9 GroupBox控件 230 9.3.10 ListView控件 230 9.3.11 TreeView控件 233 9.3.12 ImageList组件 237 9.3.13 Timer组件 237 9.4 菜单、工具栏与状态栏 239 9.4.1 MenuStrip控件 239 9.4.2 ToolStrip控件 240 9.4.3 StatusStrip控件 241 9.5 对话框 243 9.5.1 消息框 244 9.5.2 打开对话框控件 245 9.5.3 另存为对话框控件 246 9.5.4 浏览文件夹对话框控件 247 9.6 难点解答 248 9.6.1 在窗体中看不到可视控件的原因 248 9.6.2 控件和组件的区别 249 9.7 小结 249 9.8 动手纠错 249 第10章 数据访问技术 251 10.1 ADO.NET概述 252 10.1.1 ADO.NET对象模型 252 10.1.2 数据访问命名空间 253 10.2 Connection数据连接对象 253 10.2.1 熟悉Connection对象 254 10.2.2 数据库连接字符串 254 10.2.3 应用SqlConnection对象连接数据库 255 10.3 Command命令执行对象 256 10.3.1 熟悉Command对象 256 10.3.2 应用Command对象操作数据 257 10.3.3 应用Command对象调用存储过程 258 10.4 DataReader数据读取对象 260 10.4.1 DataReader对象概述 260 10.4.2 使用DataReader对象检索数据 261 10.5 DataSet对象和DataAdapter操作对象 263 10.5.1 DataSet对象 263 10.5.2 DataAdapter对象 264 10.5.3 填充DataSet数据集 265 10.6 DataGridView控件的使用 266 10.7 Entity Framework编程基础 269 10.7.1 什么是Entity Framework 269 10.7.2 Entity Framework实体数据模型 270 10.7.3 Entity Framework运行环境 270 10.7.4 创建实体数据模型 271 10.7.5 通过EF对数据表进行增删改查操作 274 10.8 难点解答 276 10.8.1 DataSet对象与DataReader对象的区别 276 10.8.2 EF相对于ADO.NET的优势 277 10.9 小结 277 10.10 动手纠错 277 第11章 程序调试与异常处理 279 11.1 程序调试 280 11.1.1 Visual Studio编辑器调试 280 11.1.2 Visual Studio调试器调试 281 11.2 异常处理 285 11.2.1 try…catch语句 286 11.2.2 try…catch…f inally语句 287 11.2.3 throw语句 288 11.3 难点解答 290 11.3.1 使用多个catch时的注意事项 290 11.3.2 异常的使用原则 291 11.4 小结 292 11.5 动手纠错 292 第3篇 高级应用 293 第12章 I/O 数据流技术 294 12.1 文件基本操作 295 12.1.1 File类 295 12.1.2 FileInfo类 296 12.1.3 判断文件是否存在 297 12.1.4 创建文件 298 12.1.5 复制文件 299 12.1.6 移动文件 299 12.1.7 删除文件 300 12.1.8 获取文件基本信息 301 12.2 文件夹基本操作 302 12.2.1 Directory类 303 12.2.2 DirectoryInfo类 303 12.2.3 判断文件夹是否存在 304 12.2.4 创建文件夹 305 12.2.5 移动文件夹 305 12.2.6 删除文件夹 306 12.2.7 遍历文件夹 307 12.3 I/O(输入/输出) 310 12.3.1 流概述 310 12.3.2 文件I/O流介绍 311 12.3.3 使用I/O流操作文本文件 313 12.4 难点解答 316 12.4.1 文本文件的编码方式 316 12.4.2 什么时候使用输入流?什么时候使用输出流? 316 12.5 小结 317 12.6 动手纠错 317 第13章 GDI+ 绘图应用 319 13.1 GDI+绘图基础 320 13.1.1 GDI+概述 320 13.1.2 Graphics绘图类 320 13.2 设置画笔与画刷 321 13.2.1 设置画笔 321 13.2.2 设置画刷 322 13.3 绘制几何图形 323 13.3.1 绘制图形 325 13.3.2 填充图形 327 13.4 绘制图像 329 13.5 难点解答 330 13.5.1 解决图像消失的问题 330 13.5.2 实现图像特殊效果的通用方法 331 13.6 小结 332 13.7 动手纠错 332 第14章 Socket 网络编程 333 14.1 计算机网络基础 334 14.1.1 局域网与广域网 334 14.1.2 网络协议 334 14.1.3 端口及套接字 336 14.2 IP地址封装 337 14.3 TCP程序设计 340 14.3.1 Socket类 340 14.3.2 TcpClient类和TcpListener类 342 14.3.3 TCP网络程序实例 343 14.4 UDP程序设计 346 14.4.1 UdpClient类 346 14.4.2 UDP网络程序实例 347 14.5 难点解答 351 14.5.1 TCP协议和UDP协议的区别 351 14.5.2 网络之间可以传递哪些数据? 351 14.6 小结 351 14.7 动手纠错 351 第15章 多线程编程技术 353 15.1 线程概述 354 15.1.1 线程的定义与分类 354 15.1.2 多线程的优缺点 355 15.2 线程的实现 355 15.2.1 使用Thread类创建线程 355 15.2.2 线程的生命周期 358 15.3 操作线程的方法 359 15.3.1 线程的休眠 359 15.3.2 线程的加入 361 15.3.3 线程的终止 363 15.3.4 线程的优先级 364 15.4 线程的同步 365 15.4.1 线程同步机制 366 15.4.2 使用lock关键字实现线程同步 367 15.4.3 使用Monitor类实现线程同步 369 15.4.4 使用Mutex类实现线程同步 371 15.5 难点解答 372 15.5.1 过时的Suspend方法和Resume方法 372 15.5.2 了解线程池 373 15.6 小结 373 15.7 动手纠错 374 第4篇 项目实战 375 第16章 五子棋大厅游戏 376 16.1 开发背景 377 16.2 系统功能设计 377 16.2.1 系统功能结构 377 16.2.2 系统业务流程 377 16.3 系统开发必备 378 16.3.1 系统开发环境要求 378 16.3.2 数据库设计 379 16.3.3 项目目录结构预览 379 16.3.4 界面预览 380 16.4 自定义UDP协议控件 382 16.5 服务器窗体设计 386 16.5.1 服务器窗体概述 386 16.5.2 设计服务器窗体 386 16.5.3 开始/停止服务 387 16.5.4 设置分数排名方式 387 16.5.5 关闭服务器 388 16.6 客户端注册窗体设计 389 16.6.1 客户端注册窗体概述 389 16.6.2 设计客户端注册窗体 389 16.6.3 系统加载时获取本地IP地址 390 16.6.4 在下拉列表中绘制图片 391 16.6.5 注册用户功能的实现 392 16.7 五子棋大厅窗体设计 394 16.7.1 五子棋大厅窗体概述 394 16.7.2 设计五子棋大厅窗体 395 16.7.3 循环播放背景音乐 396 16.7.4 进入指定的房间 396 16.7.5 进入指定的座位 399 16.7.6 局域网内的公共聊天 402 16.8 游戏对决窗体设计 403 16.8.1 游戏对决窗体概述 403 16.8.2 设计游戏对决窗体 404 16.8.3 开始五子棋对决 405 16.8.4 五子棋算法实现 407 16.8.5 在棋盘上添加双方的棋子 411 16.8.6 判断双方的输赢 414 16.9 小结 416 附录 实例索引 417
用户评论