
本书全面系统地介绍了C#编程语言,所涉及的内容涵盖了C#语言的各个领域。第1~8 章:介绍.NET 的基础体系结构开发环境的搭建和使用,以及C#语言的基本知识和面向对象的基本理论和思想。第9~12 章:通过实例项目中数据结构的设计、系统结构的设计,以及源码内容的介绍,让读者全面深入地了解C#语言。第13~14 章:重点介绍文件操作和图形的处理。第15~16 章:介绍.NET 环境下数据库的使用。第17~18 章:作为进阶部分,介绍了网络编程和多线程技术。 本书内容丰富,结构清晰,通过大量精彩实例和真实项目示例,帮助开发人员从实践中成长。本书是C#初学者的入门指导书,同样适合具备一定编程经验的开发人员。
在过去的20 年里,C 和C++已经成为商业软件的开发领域中使用最广泛的语言。它们为程 序员提供了十分灵活的操作,但同时也牺牲了一定的效率。与诸如Microsoft Visual Basic 等语言比,同等级别的C/C++应用程序往往需要更长的时间来开发。由于C/C++语言的复杂性,许多程序员都试图寻找一种新的语言,希望能在功能与效率之间找到一个更为理想的权衡点。 目前,有些语言以牺牲灵活性的代价来提高效率。可是这些灵活性正是C/C++程序员所需 要的。这些解决方案对编程人员的限制过多,其所提供的功能难以令人满意。这些语言无法方便地同早先的系统交互,也无法很好地和当前的网络编程相结合。对于C/C++用户来说,最理想的解决方案无疑是在快速开发的同时又可以调用底层平台的所有功能。他们想要一种和最新的网络标准保持同步并且能和已有的应用程序良好整合的环境。另外,一些C/C++开发人员还需要在必要的时候进行一些底层的编程。于是Microsoft 推出了C#。它是一种最新的、面向对 象的编程语言。它能使程序员可以快速地编写各种基于Microsoft.NET 平台的应用程序,而Microsoft.NET 提供了一系列的工具和服务来最大程度地开发和利用计算与通信相关领域的各种应用。最重要的是,C#使得C++程序员可以高效地开发程序,而保留了C/C++原有绝大部分强 大的功能。因为这种继承关系,C#与C/C++具有极大的相似性,熟悉此类语言的开发者可以很快地转向C#。同时,C#还有兼顾效率与安全性、支持现有的网络编程新标准、消除大量程序错误和对商业过程和软件实现的更好对应的优点。 作为一本实用教程,本书详细分析和研究了C#的所有功能。本书具有以下几个显著特点: 在内容上,本书侧重于向读者介绍C#从基础到高级的内容,力图解决初学者和专业人员使 用该产品时遇到的各种疑难问题,使他们掌握使用该新产品的各种技术。每章的开头列出了本章的学习目标和学习要点。学习目标之后是正文内容。正文内容结束后为项目实践,使读者在实践中理解学习内容。最后是习题和上机实验,主要用于考察读者是否掌握了基本概念和实际操作的能力。 在编排上,为了使读者更加方便快速地学习和掌握该产品的功能,本书从基础运用到高级 运用循序渐进展开。第1~8 章:介绍.NET 的基础体系结构开发环境的搭建和使用,以及C#语言的基本知识和面向对象的基本理论和思想。第9~12 章:通过实例项目中数据结构的设计、系统结构的设计,以及源码内容的介绍,让读者全面深入地了解C#语言。第13~14 章:重点介绍文件操作和图形的处理。第15~16 章:介绍.NET 环境下数据库的使用。第17~18 章:作为进阶部分,介绍了网络编程和多线程技术。 除以上两个特点外,本书主要以项目方式来指导教学,促进学生的动手能力。 本书所有的程序都在Microsoft .Net Framework SDK 2.0 环境下调试运行通过。 本书由王乾坤担任主编,王香菊、赵震奇、华艳、胡晓敏、黄丹丹担任副主编,全书由王 乾坤统稿,高振栋主审。无锡市高等师范学校的肖敏老师和范大昭老师在成书过程中给予了多方面的指导和帮助。此外,无锡高等师范学校领导及创意与软件设计系领导对本书的编写工作 给予了有力的支持。在此,编者向所有对本书编辑工作给予支持和帮助的人表示衷心的感谢。 本书为教师配有电子教案,希望利用此电子教案,可以减轻教师负担,提高教学质量。 由于创作时间仓促,加之编者水平有限,书中难免有不足之处,欢迎广大读者朋友批评指 正,以便编者在今后的工作中不断改进。 编者
第1章 Visual Studio 2005概述 1 1.1 C#基础知识 1 1.1.1 C#简介 1 1.1.2 .NET Framework平台体系结构 1 1.1.3 面向对象的程序设计方法 2 1.2 Visual Studio2005的新特性 2 1.3 安装Visual Studio2005 3 1.4 IDE介绍 4 1.4.1 开始页面 4 1.4.2 解决方案资源管理器 5 1.4.3 菜单栏 6 1.4.4 工具栏 7 1.4.5 工具箱 8 1.4.6 代码编辑器 8 1.4.7 对象浏览器 9 1.4.8 “属性”面板 10 1.4.9 “命令”窗口 10 1.4.10 “即时”窗口 10 1.4.11 “任务列表”窗口 11 1.5 使用命名空间 11 1.6 Main方法 12 1.7 使用帮助 13 1.8 项目实践 13 1.9 复习与提示 14 1.10 习题与上机实验 14 上机实验 14 第2章 变量、操作符和表达式 16 2.1 语句 16 2.2 程序代码的注释 16 2.3 使用标识符 17 2.4 变量和常量 17 2.4.1 变量 17 2.4.2 常量 18 2.5 数据类型 18 2.5.1 值类型和引用类型的区别 19 2.5.2 基本数据类型 19 2.5.3 引用类型 20 2.6 运算符与表达式类型 21 2.6.1 运算符的分类 21 2.6.2 运算符的优先级 23 2.7 项目实践 24 2.8 复习与提示 25 2.9 习题与上机实验 25 习题2 25 上机实验 27 [实验1] 求矩形的周长和面积 27 [实验2] 判断某年是否闰年 27 第3章 方法 29 3.1 声明方法 29 3.1.1 声明方法的语法格式 29 3.1.2 return语句 30 3.2 调用方法: 30 3.2.1 ref关键字 30 3.2.2 创建out参数 31 3.3 运用作用域 31 3.4 方法的重载 32 3.5 项目实践 32 3.6 复习与提示 34 3.7 习题与上机实验 34 习题3 34 上机实验 35 [实验1] 给三个整数排序并求其和及平均值 35 [实验2] 求N!的值 36 第4章 结构化程序设计 37 4.1 顺序结构程序设计 37 4.1.1 单赋值语句 37 4.1.2 复合赋值语句 37 4.1.3 连续赋值语句 38 4.2 输出和输入 38 4.2.1 输入方法 38 4.2.2 输出方法 38 4.3 选择结构程序设计 38 4.3.1 if语句(单分支选择结构) 38 4.3.2 switch 语句(多分支选择结构) 39 4.4 循环结构程序设计 39 4.4.1 for循环语句 39 4.4.2 while 循环语句 40 4.4.3 do…while循环语句 40 4.5 转移语句 40 4.5.1 goto语句 41 4.5.2 break语句 41 4.5.3 continue 语句 41 4.5.4 return 语句 41 4.6 项目实验 41 4.7 复习与提示 44 4.8 习题与上机实验 44 习题4 44 第5章 枚举和结构 46 5.1 枚举 46 5.1.1 定义枚举 46 5.1.2 使用枚举 47 5.2 结构 47 5.2.1 定义结构 47 5.2.2 使用结构 48 5.3 项目实践 49 5.4 复习与提示 51 5.5 习题与上机实验 51 习题5 51 上机实验 52 [实验] 求矩形的周长和面积 52 第6章 数组与集合 53 6.1 数组 53 6.1.1 声明数组 53 6.1.2 数组初始化 53 6.1.3 访问一个单独的数组元素 54 6.1.4 foreach循环 54 6.1.5 使用数组 54 6.1.6 多维数组 54 6.1.7 数组项目实践 55 6.2 集合 56 6.2.1 什么是集合 56 6.2.2 ArrayList类 57 6.2.3 Queue类 57 6.2.4 Stack类 57 6.2.5 Hashtable类 58 6.2.6 SortedList类 58 6.2.7 集合项目实践 58 6.2.8 数组和集合的区别 60 6.3 复习与提示 60 6.4 习题与上机实验 60 习题6 60 第7章 面向对象编程 62 7.1 类和对象 62 7.1.1 类的定义 62 7.1.2 声明和使用对象 63 7.2 访问控制 63 7.3 属性 64 7.3.1 定义属性 64 7.3.2 使用属性 65 7.4 方法 65 7.5 构造函数 66 7.5.1 声明构造函数 66 7.5.2 重载构造函数 66 7.6 析构函数 67 7.7 静态成员 67 7.8 Visual Studio .NET中的OOP工具 68 7.8.1 在Visual Studio2005中创建类 68 7.8.2 添加类成员 68 7.8.3 "类视图”窗口 68 7.9 常用类操作和数据处理 69 7.9.1 Convert类 69 7.9.2 string 类 69 7.9.3 Math 类 70 7.9.4 DateTime类和TimeSpan类 71 7.10 项目实践 71 7.11 复习与提示 74 7.12 习题与上机实验 74 习题7 74 第8章 面向对象编程进阶 77 8.1 封装、继承和多态 77 8.1.1 封装 77 8.1.2 继承 77 8.1.3 多态性 79 8.2 接口 80 8.2.1 声明接口 81 8.2.2 接口限制 81 8.2.3 实现接口 81 8.2.4 使用多个接口 82 8.3 项目实践 82 8.4 复习与提示 87 8.5 习题与上机实践 87 习题8 87 上机实验 89 [实验1] 求三角形的面积 89 第9章 窗体 91 9.1 创建窗体 91 9.1.1 使用新建项目模板创建窗体 91 9.1.2 使用添加项目模板创建窗体 92 9.2 设置窗体属性 93 9.3 窗体的常用事件 94 9.4 窗体的常用方法 94 9.5 项目实践 95 9.6 复习与提示 96 习题9 96 上机实验 96 [实验1] 设计有两个窗体的应用程序 96 第10章 控件 98 10.1 Windows窗体界面设计 98 10.1.1 在窗体中添加控件 98 10.1.2 修改控件属性 99 10.1.3 鼠标事件与键盘事件 99 10.2 常用文本编辑控件 101 10.2.1 标签控件(Label) 101 10.2.2 文本框控件(TextBox) 101 10.3 按钮类控件 102 10.3.1 按钮控件(Button) 102 10.3.2 单选按钮(RadioButton) 102 10.3.3 复选框控件(CheckBox) 103 10.4 组合框控件 103 10.4.1 列表框控件(ListBox)与复选列表框(CheckedListBox) 104 10.4.2 组合框控件(ComboBox) 105 10.5 滚动类控件 105 10.5.1 水平滚动条控件(HScrollBar)与垂直滚动条控件(VScrollBar) 105 10.5.2 进度条控件(ProgressBar) 106 10.6 列表视图控件和树视图控件 106 10.6.1 列表视图控件(ListView) 106 10.6.2 树视图控件(TreeView) 108 10.7 图片框控件和图像列表控件 109 10.7.1 图片框控件(PictureBox) 109 10.7.2 图像列表控件(ImageList) 110 10.9 定时器控件 111 10.10 项目实践 111 项目一 111 项目二 117 项目三 121 10.11 复习与提示 125 习题10 126 上机实验 126 [实验1] 设计一个能进行加减乘除运算的应用程序 126 [实验2] 设计一个收集个人信息的应用程序 127 [实验3] 设计一个能进行专业管理的应用程序 128 第11章 使用菜单和对话框 129 11.1 菜单 129 11.1.1 菜单控件(MenuStrip)与快捷菜单控件(ContextMenuStrip) 129 11.1.2 工具栏控件(ToolStrip)和状态栏控件(StatusStrip) 131 11.2 设计MDI窗体 135 11.2.1 MDI主窗体和子窗体 135 11.2.2 MDI窗体的操作 136 11.3 通用对话框控件 137 11.3.1 文件对话框控件 137 11.3.2 字体和颜色对话框控件 140 11.4 使用打印机 141 11.4.1 打印流程 141 11.4.2 打印文本的实现 141 11.4.3 打印预览的实现 142 11.5 项目实践 143 11.6 复习与提示 146 习题11 147 上机实验 147 【实验1】 设计一个简单的MDI的应用程序 147 【实验2】 设计一个简单的MDI文本编辑器。 148 第12章 调试与异常处理 150 12.1 程序调试 150 12.1.1 调试的理解 150 12.1.2 调试的工具 151 12.1.3 中断模式下的调试 151 12.2 异常处理 152 12.2.1 异常及异常处理 152 12.2.2 结构化异常处理 153 12.2.3 引发异常 154 12.3 项目实践 154 12.4 复习与提示 156 习题12 157 上机实验 157 【实验1】 调试修改project10-1中的错误 157 第13章 流和文件输入/输出操作 159 13.1 Stream类 159 13.2 FileStream类 159 13.2.1 文件位置 160 13.2.2 读取数据 160 13.2.3 写入数据 162 13.3 用于读写数据的类 163 13.3.1 读写二进制文件的操作 163 13.3.2 读写文本文件处理 164 13.4 文本与剪贴板之间的交互 166 13.5 文件和目录类 167 13.5.1 文件类 167 13.5.2 目录类 168 13.6 项目实践 169 13.7 复习与提示 170 习题13 171 上机实验 171 【实验1】 用StreamReade类、StreamWriter类和File类处理文件。 171 【实验2】 使用FileInfo类实现文件解除隐藏、隐藏、拷贝和删除。 171 第14章 图形图像与多媒体处理 173 14.1 GDI+概述 173 14.2 GDI+使用的坐标系 173 14.2.1 Point 174 14.2.2 Size 175 14.2.3 Rectangle 175 14.3 Graphics对象 175 14.4 Paint事件 176 14.5 颜色 176 14.6 字体 177 14.7 画笔 178 14.8 画刷 179 14.9 显示图像 180 14.10 图形图像与剪贴板的交互作用 186 14.11 使用媒体播放控件 187 14.12 项目实践 189 14.13 复习与提示 190 习题14 190 上机实验 191 【实验1】 制作个人画图板 191 第15章 数据库技术 192 15.1 常用数据库 192 15.1.1 Access数据库 192 15.1.2 SQL Server数据库 193 15.2 数据库基础知识 194 15.2.1 表 194 15.2.2 视图 195 15.2.3 存储过程 195 15.2.4 索引 195 15.3 ADO.NET概述 196 15.3.1 ADO与ADO.NET的关系 196 15.3.2 .NET Framework数据提供程序 197 15.3.3 .NET Framework数据提供程序的核心对象 197 15.3.4 System.Data命名空间 198 15.4 连接数据库 198 15.4.1 SqlConnection类 198 15.4.2 连接字符串 199 15.4.3 创建SQL Server连接 199 15.4.4 断开SQL Server连接 199 15.4.5 OleDbConnection类 201 15.5 数据命令 201 15.5.1 查询记录 202 15.5.2 插入记录 203 15.5.3 修改记录 204 15.5.4 删除记录 206 15.6 SqlDataReader对象 207 15.7 使用可视控件访问ADO.NET数据库 209 15.8 定义DataSet类 211 15.9 DataSet、DataTable和TableAdapter对象 212 15.9.1 浏览数据 213 15.10 数据绑定 213 15.10.1 简单的数据绑定 214 15.10.2 复杂的数据绑定 216 15.11 本章小结 218 15.12 习题与上机实践 218 习题15 218 第16章 使用ADO.NET访问数据库 220 16.1 ADO.NET体系结构 220 16.2 数据适配器 221 16.3 数据集 222 16.4 DataTable类 223 16.4.1 DataTable类的常用属性和方法 223 16.4.2 创建数据表 224 16.4.3 定义数据表结构 224 16.4.4 操作数据表中的数据 225 16.5 DataRelation类 228 16.6 CurrencyManager和BindingContext类 228 16.7 复习与提示 229 16.8 习题与上机实践 229 习题16 229 第17章 网络编程 231 17.1 Socket的基本概念 231 17.1.1 Socket简介 231 17.1.2 Socket编程原理 232 17.2 TCP/IP网络模型 234 17.3 获得网络端点 235 17.3.1 IPEndPoint类 235 17.3.2 IPHostEntry类 237 17.4 网络流 237 17.5 Socket通信 239 17.6 用户数据报协议 241 17.7 传输控制协议 243 17.7.1 TcpListener类 243 17.7.2 TcpClient类 243 17.8 网络聊天程序 244 17.9 电子邮件收发程序 249 17.9.1 与电子邮件系统相关的协议 249 17.9.2 Microsoft MAPI Control控件简介 250 17.9.3 使用POP3协议接收邮件 250 17.10 项目实践 251 17.11 复习与提示 255 习题20 255 上机实验 255 [实验2] 创建简单的聊天程序 256 第18章 多线程技术 257 18.1 概述 257 18.1.1 什么是线程 257 18.1.2 单线程和多线程 258 18.1.3 多线程在.NET中如何工作 258 18.2 System.Threading命名空间 258 18.3 Thread类 258 18.4 Monitor类 260 18.5 Mutex类 262 18.6 ReaderWriterLock类 263 18.7 ThreadPool类 267 18.8 WaitHandle类 269 18.9 AutorEsetEvent类 270 18.10 Timer类 273 18.11 项目实践 275 18.12 复习与提示 278 习题18 278 上机实验 278 [实验1] Thread类的方法的使用 278 [实验2] 滚动字幕的实现 279 第19章 部署应用程序 280 19.1 使用安装项目部署Windows应用程序 280 19.2 项目实践 281 19.3 本章小结 284
http://www.hxedu.com.cn/hxedu/fg/book/bookinfo.html?code=G0214960