目录 第1章C#和Visual C#开发环境1 1.1C#语言简介1 1.1.1C#的发展史1 1.1.2C#的特点1 1.2.NET开发平台2 1.2.1.NET概述2 1.2.2.NET Framework的结构2 1.2.3.NET Framework的优点3 1.3Visual C#开发环境4 1.3.1标题栏5 1.3.2菜单栏5 1.3.3工具栏11 1.3.4工具箱11 1.3.5窗口12 1.3.6新建应用程序13 1.4C#程序的基本结构14 1.4.1注释16 1.4.2命名空间16 1.4.3类型及其成员16 1.4.4程序主方法17 1.4.5程序集17 1.5小结18 习题18 第2章C#语法基础19 2.1数据类型19 2.1.1简单类型20 2.1.2数组类型21 2.1.3字符串类型252.1.4结构类型和枚举类型26 2.1.5数据类型转换29 2.2运算符和表达式30 2.2.1简单算术运算符30 2.2.2自增和自减运算符31 2.2.3赋值运算符32 2.2.4关系运算符32 2.2.5逻辑运算符33 2.2.6移位运算符33 2.2.7typeof运算符34 2.2.8运算符优先级和结合性34 2.2.9运算符的重载34 2.3控制结构35 2.3.1选择结构35 2.3.2循环结构39 2.3.3跳转结构43 2.4小结44 习题44 第3章面向对象程序设计概述47 3.1面向对象的基本概念47 3.1.1对象47 3.1.2类47 3.1.3类与对象的关系48 3.1.4面向对象的特征48 3.2类的定义49 3.2.1类的声明和实例化50 3.2.2类的数据成员和属性50 3.2.3类的可访问性52 3.2.4值类型与引用类型54 3.3类的方法55 3.3.1方法的声明与调用55 3.3.2方法的参数传递56 3.3.3方法的重载61 3.4构造函数64 3.4.1构造函数的声明和调用64 3.4.2构造函数的重载66 3.4.3对象的生命周期和析构函数67 3.5封装的概念及意义68 3.5.1修饰符支持封装68 3.5.2使用属性封装70 3.6继承71 3.6.1基类和派生类71 3.6.2隐藏基类成员72 3.6.3base关键字74 3.7多态性74 3.7.1虚拟方法75 3.7.2抽象类和抽象方法76 3.7.3密封类和密封方法77 3.8接口78 3.8.1接口的定义78 3.8.2接口的实现79 3.8.3接口与多态80 3.9小结81 习题82 第4章委托和事件84 4.1委托84 4.1.1委托的概念84 4.1.2委托的声明、实例化与使用84 4.1.3多路广播与委托的组合87 4.2事件88 4.2.1事件声明88 4.2.2订阅事件90 4.2.3触发事件91 4.3小结91 习题92 第5章程序调试与异常处理93 5.1程序错误93 5.1.1程序错误分类93 5.1.2调试程序错误95 5.2程序的异常处理97 5.2.1异常的概念97 5.2.2异常类97 5.2.3trycatchfinally语句98 5.2.4throw语句与抛出异常99 5.3小结101 习题101 第6章集合、索引器、泛型103 6.1集合103 6.1.1ArraryList103 6.1.2哈希表105 6.1.3栈和队列106 6.2索引器108 6.2.1索引器的定义与使用108 6.2.2索引器与属性的比较110 6.3泛型110 6.3.1泛型集合110 6.3.2泛型类、泛型方法和泛型接口112 6.4小结116 习题116 第7章LINQ技术117 7.1什么是LINQ117 7.2LINQ提供程序118 7.3匿名类型118 7.4方法语法和查询语法120 7.5查询变量121 7.6查询表达式的结构121 7.6.1获取数据源122 7.6.2筛选122 7.6.3排序123 7.6.4分组123 7.6.5联结124 7.7小结125 习题126 第8章Windows应用程序开发127 8.1Windows窗体介绍127 8.1.1添加窗体127 8.1.2设置启动窗体127 8.1.3设置窗体属性128 8.1.4窗体常用方法130 8.1.5窗体常用事件131 8.2Windows控件的使用132 8.2.1Control类132 8.2.2常用控件134 8.3小结142 习题143 第9章ADO.NET编程144 9.1ADO.NET概述144 9.2ADO.NET对象模型144 9.2.1Connection对象144 9.2.2Command对象145 9.2.3DataReader对象146 9.2.4Parameter对象147 9.2.5DataAdapter对象148 9.2.6DataSet对象148 9.3数据访问类——SqlHelper类149 9.4图书信息管理模块的实现152 9.4.1需求描述152 9.4.2系统设计152 9.4.3编码的实现154 9.5小结173 习题173 第10章文件操作174 10.1文件的输入/输出174 10.1.1文件的输入/输出与流174 10.1.2读/写文本文件175 10.1.3读/写二进制文件177 10.1.4对象的序列化179 10.2文件操作控件182 10.2.1SaveFileDialog和OpenFileDialog控件182 10.2.2FolderBrowseDiolog、ColorDialog、FontDialog控件184 10.2.3应用实例——简易写字板184 10.3XML文档编程188 10.3.1XML概述189 10.3.2XML文档的创建189 10.3.3XML文档的查询193 10.3.4XML文档的编辑194 10.4小结196 习题196 第11章网络编程197 11.1计算机网络基础197 11.1.1网络协议介绍197 11.1.2套接字介绍198 11.2网络编程基础201 11.2.1常见类概述201 11.2.2System.Net.Sockets命名空间中相关类的使用204 11.2.3System.Net.Mail命名空间中相关类的使用212 11.3小结219 习题219 第12章多线程编程221 12.1线程概述221 12.1.1多线程工作方式221 12.1.2何时使用多线程222 12.2线程的基本操作223 12.2.1线程的创建与启动223 12.2.2线程的挂起与恢复224 12.2.3线程休眠225 12.2.4线程终止225 12.2.5线程的优先级227 12.3线程同步228 12.3.1lock关键字228 12.3.2线程监视器——Monitor类229 12.3.3子线程访问主线程的控件230 12.4线程池232 12.4.1线程池管理232 12.4.2ThreadPool类的几个关键方法234 12.4.3线程池使用限制234 12.5定时器234 12.6互斥对象——Mutex类235 12.7小结237 习题237 第13章综合实例——“外星人入侵”游戏238 13.1需求分析238 13.1.1游戏概述238 13.1.2功能描述238 13.2系统设计238 13.2.1开发环境238 13.2.2功能层次图239 13.2.3类设计239 13.2.4界面设计242 13.3编码实现243 13.3.1新建项目243 13.3.2添加类244 13.3.3添加用户控件254 13.3.4添加游戏主界面260 13.4小结269 思考269 参考文献270