C#程序设计实用教程

出版时间:2011-5  出版社:机械工业出版社  作者:李正夫 编  页数:301  

内容概要

  《C#程序设计实用教程》是一本讲解C#语言和.NET技术的教材,主要内容包括.NET概述、C#语法基础、控制语句、面向对象技术、集合和泛型、常用类和数据结构、Windows窗体和控件、GDI+、文件和流操作、线程和进程、ADO.NET 和Web编程等。《C#程序设计实用教程》结合微软公司Visual Studio 2008和.NET平台进行讲解,同时每一章后都安排有针对性的练习题。全书各章都精心编排了相关实例,同时为了帮助读者更好地在实际项目中体会《C#程序设计实用教程》所讲内容,特别安排了五个综合项目,供读者学习参考。  《C#程序设计实用教程》内容翔实、结构合理清晰、实用性强。初学者可以很容易借助《C#程序设计实用教程》掌握Visual Studio 2008和.NET平台的使用,开始C#编程开发之旅。有一定基础的读者也可以从《C#程序设计实用教程》中获得很多有价值的参考信息。《C#程序设计实用教程》适合作为高等院校C#语言课程的教材,也可作为初中级编程人员的自学参考书。

书籍目录

言第1章 .NET概述11.1 .NET11.2 .NET平台的组成11.3 .NET Framework21.3.1 公共语言运行时31.3.2 .NET Framework类库和命名空间41.4 C#与其他编程语言的比较51.4.1 与C、C++的比较51.4.2 与Java的比较51.5 Visual Studio 200851.5.1 Visual Studio 2008的安装61.5.2 使用Visual Studio 200881.6 小结131.7 习题13第2章 数据类型、运算符及其表达式152.1 C#基本语法152.1.1 语句152.1.2 空白152.1.3 注释162.2 变量和常量182.2.1 变量182.2.2 常量192.3 值类型202.3.1 简单值类型202.3.2 枚举类型232.3.3 结构体类型252.4 引用类型272.5 运算符272.5.1 算术运算符272.5.2 赋值运算符282.5.3 关系运算符282.5.4 逻辑运算符282.5.5 条件运算符292.5.6 typeof运算符292.6 小结292.7 习题29第3章 控制语句313.1 流程控制概述313.2 分支语句323.2.1 if语句323.2.2 switch语句343.3 循环结构353.3.1 while循环语句363.3.2 do-while循环373.3.3 for循环383.3.4 foreach循环403.4 跳转语句413.4.1 break语句413.4.2 continue语句423.4.3 return语句423.4.4 goto语句433.5 预处理指令443.5.1 region预处理指令453.5.2 定义预处理指令453.5.3 条件预处理指令453.5.4 warning和error预处理指令463.6 小结473.7 习题473.8 综合项目-猜数字游戏483.8.1 项目分析483.8.2 项目设计493.8.3 项目实现50第4章 面向对象程序设计基础554.1 类与对象概述554.2 类的定义564.3 类的使用-实例化及使用对象574.3.1 声明对象574.3.2 实例化类得到对象584.3.3 访问对象584.4 访问控制594.4.1 访问修饰符public594.4.2 访问修饰符private594.4.3 访问修饰符protected594.4.4 访问修饰符internal604.5 类的封装性与属性604.5.1 类的封装性604.5.2 属性604.5.3 方法624.6 方法的重载634.7 类的构造函数与析构函数634.8 静态成员664.9 委托和事件684.10 应用实例704.11 小结734.12 习题73第5章 面向对象提高745.1 封装、继承、多态745.1.1 封装745.1.2 继承745.1.3 多态785.2 抽象类、密封类与接口825.2.1 抽象类825.2.2 密封类835.2.3 接口845.3 this和base关键字875.4 异常处理905.5 小结915.6 习题915.7 综合实例项目-汽车公司935.7.1 项目分析935.7.2 项目设计935.7.3 项目实现94第6章 集合与泛型996.1 数组996.2 集合1006.2.1 列表1016.2.2 队列1036.2.3 哈希表1056.2.4 栈1076.2.5 有序表1096.3 泛型1116.3.1 List1116.3.2 Stack1136.4 小结1146.5 习题114第7章 常用类和数据类型1157.1 字符串1157.1.1 System.String类1167.1.2 System.Text.StringBuilder类1217.2 日期时间1257.2.1 DateTime结构1267.2.2 TimeSpan结构1287.3 System.Object类1297.4 随机数对象1307.5 类型之间的转换1317.6 小结1347.7 习题134第8章 Windows窗体和控件1358.1 窗体概述1358.1.1 创建窗体应用程序1358.1.2 设置窗体的属性1368.1.3 窗体的事件1368.1.4 窗体的方法1378.1.5 特殊窗体的创建1378.2 窗体控件1388.2.1 窗体控件概述1388.2.2 窗体控件属性1388.2.3 常用的窗体控件1398.3 窗体的菜单1548.4 鼠标键盘事件1558.4.1 鼠标操作1558.4.2 键盘操作1578.5 对话框控件1588.5.1 使用MessageBox对话框1588.5.2 使用FontDialog对话框1598.5.3 使用ColorDialog对话框1618.5.4 使用FolderBrowserDialog对话框1628.6 SDI和MDI应用程序1638.7 小结1658.8 习题165第9章 GDI+1669.1 GDI+概述1669.2 C#的图形绘制结构和类1669.2.1 常用绘图结构1669.2.2 Graphics类1679.2.3 Pen类1689.2.4 Brush类及Brush的派生类1699.2.5 Color类1709.2.6 Font 类1719.3 绘制图形1719.3.1 绘制直线1719.3.2 绘制矩形1729.3.3 绘制圆和椭圆1739.3.4 绘制文本1739.3.5 绘制圆弧1759.3.6 绘制曲线1759.3.7 绘制多边形1759.3.8 绘制图标1769.3.9 绘制路径1769.3.10 绘制扇形1769.4 填充图形和清除方法1779.5 位图处理1789.6 坐标变换1789.7 Paint事件1819.8 GDI+应用实例1839.9 小结1929.10 习题1939.11 综合实例项目-小助手1939.11.1 项目分析1939.11.2 项目设计1939.11.3 项目实现195第10章 文件管理20310.1 System.IO命名空间概述20310.2 Windows文件系统20410.2.1 Directory类与DirectoryInfo类20510.2.2 File类与FileInfo类20710.2.3 Path类21010.2.4 文件属性21210.3 读写文件21310.3.1 流概述21310.3.2 读写文本文件21410.3.3 读写二进制文件21610.4 文件对话框21810.4.1 打开文件对话框21910.4.2 保存文件对话框22010.5 小结22110.6 习题222第11章 线程22311.1 线程概述22311.2 System.Threading.Thread类22411.3 线程状态与线程优先级22611.3.1 线程状态22611.3.2 线程优先级22711.4 线程间通信22911.5 线程池23011.6 线程锁23211.6.1 线程同步23211.6.2 死锁23511.7 进程操作23811.8 小结23911.9 习题24011.10 综合项目-幸运之星24011.10.1 项目分析24011.10.2 项目设计24011.10.3 项目实现241第12章 ADO.NET24712.1 ADO.NET简介24712.2 ADO.NET的结构24712.2.1 数据提供者24812.2.2 数据集24912.3 使用ADO.NET对象连接SQL Server数据库25012.3.1 DataReader读取数据25012.3.2 数据集读取数据25212.3.3 设置连接属性25312.4 使用数据绑定控件25712.5 更新数据库25912.5.1 添加数据记录25912.5.2 修改数据记录26112.5.3 删除数据记录26212.6 小结26412.7 习题264第13章 WEB编程26613.1 ASP.NET概述26613.2 ASP.NET网页26713.3 服务器控件27013.3.1 HTML服务器控件27013.3.2 Web服务器控件27113.4 验证控件27313.5 用户控件27613.6 内置对象27713.7 使用ADO.NET显示数据库信息28313.8 使用AJAX28513.9 小结28713.10 习题28713.11 综合实例项目-图书管理系统28913.11.1 项目分析28913.11.2 项目设计28913.11.3 项目实现293参考文献301

章节摘录

  前面介绍了为了做到线程同步而进行锁定对象的情况,但是如果用不好线程锁的话,反倒可能引起线程间的死锁问题。  死锁是指两个或多个进程(或线程)在执行过程中,因争夺某项资源而造成的一种互相等待的现象,若不强制终止它们,它们将一直等待下去。这时称系统处于死锁状态或系统内产生了死锁情况,这些一直在互相等待的进程称为死锁进程。死锁对于操作系统来说是个非常严重的问题,因为死锁一般都会引起操作系统的崩溃。对于编程人员来说,一定要避免引起死锁。  一种情形,发生死锁的线程都在等待被其他线程占用并堵塞了的资源。例如,如果线程A锁住了资源1并等待申请资源2,而线程B则锁住了资源2并等待其他线程释放资源1,这样两个线程就发生了死锁。  计算机系统中,如果操作系统的资源分配策略不当,更常见的可能是编程人员的程序有问题,就会导致进程因竞争资源不当而产生死锁的现象。  产生死锁的主要原因如下。  1)系统内资源不够所有进程(线程)使用。2)进程问执行的顺序不合适。3)资源分配策略不当。  如果系统资源相对充足,进程的资源申请都能够得到及时满足;出现死锁的可能性就很低;否则进程间就会因争夺有限的资源而陷入死锁。进程的运行顺序与速度不同,也可能产生死锁。  产生死锁的必要条件如下。  1)资源互斥:某个资源每次只能被一个进程使用。  2)请求与保持:一个进程因请求资源而陷入等待时,对已申请到的资源保持不放。  3)不剥夺条件:进程己获得的资源,在未使用完之前,系统不能强行剥夺。  4)循环等待:若干进程之间形成一种头尾相接的相互循环等待申请资源。

图书封面

评论、评分、阅读与下载


    C#程序设计实用教程 PDF格式下载


用户评论 (总计0条)

 
 

 

250万本中文图书简介、评论、评分,PDF格式免费下载。 第一图书网 手机版

京ICP备13047387号-7